簡體   English   中英

什么是 -D 編譯器標志 C++(clang、GNU、MSVC)

[英]What is the -D compiler flag C++ (clang, GNU, MSVC)

好的,我假設-D前綴意味着#define后跟的任何變量名稱,但是我找不到有關此編譯器標志的 makefile 功能的任何文檔。

CXX=clang -DTHISISPREPROCESSORVARIABLE

因此,make 過程中的-DTHISISPREPROCESSORVARIABLE將定義預處理器變量THISISPREPROCESSORVARIABLE並使后續cout編譯。

#ifdef THISISPREPROCESSORVARIABLE
     std::cout << "this should exist with the -D" << endl;
#endif

這是正確的假設嗎? 它似乎有效,任何人都可以確認這個-D指的是#define (任何人都有指向某些可以填寫所有這些命令定義的 makefile 文檔的鏈接?)

GCCMSVCIntel都記錄了這個標志,而 Clang 默認只使用 GCC 標志。 我剛剛在底部的 Clang 幫助頁面waaaay 上找到了它(對於 windows 的 clang-cl),而harmic此處為 linux 找到了更清楚的信息

執行clang-cl /? 查看支持的選項列表:
/D <macro[=value]>定義宏

harmic觀察到這些是編譯器標志,與 makefile 沒有任何關系,這就是為什么您無法在 makefile 文檔中找到它的原因。 這些標志可以放在一個 makefile 中,它會將它們傳遞給編譯器,但不是 makefile 的一部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM