#define MACRO
int main() {
#include MACRO
}
僞碼存在於上面。 我從命令行tsking像如何做#include宏,並從C++中的命令行取宏值
g++ -DMACRO="x.h"
錯誤MACRO值顯示
#include expects "FILENAME" or <FILENAME>
#define MACRO
int main() {
#include MACRO
}
僞碼存在於上面。 我從命令行tsking像如何做#include宏,並從C++中的命令行取宏值
g++ -DMACRO="x.h"
錯誤MACRO值顯示
#include expects "FILENAME" or <FILENAME>
問題是最有可能是你的命令的環境中刪除的參數中的雙引號,你需要以逃避報價:
$ g++ -DMACRO=\"x.h\"
另外,他可能不應該'#define MACRO '在編制單位。 – user694733
刪除#define MACRO
, 這與您在命令行參數中定義的MACRO
衝突。
您不需要定義宏,因爲這是'-DMACRO = ...'所做的。 – Chiel
解決方案取決於您使用的shell(在unix版本下)或命令行處理器(例如windows下的CMD)。不同的命令行處理程序處理雙引號的方式不同,除非以某種方式轉義,否則不能在命令行上傳遞雙引號('「')字符 – Peter
gcc預處理器還具有['-include file'選項](https ://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/Preprocessor-Options.html#Preprocessor-Options)向編譯文件添加附加內容。 –