2017-09-15 8 views
1
#define MACRO 

int main() { 

#include MACRO 
} 

擬似コードは上記のとおりです。私はする方法マクロを#includeし、C++でコマンドラインからマクロ値を取得する

g++ -DMACRO="x.h" 

のようなエラーが

#include expects "FILENAME" or <FILENAME> 
+1

マクロを定義する必要はありません。これは、 '-DMACRO = ... 'と同じです。 – Chiel

+0

解決方法は、使用しているシェル(UNIXフレーバの下)またはコマンドラインプロセッサ(Windowsの下のCMDなど)によって異なります。 – Peter

+0

gccプリプロセッサには、['-include file'オプション](https(" https ")があります。 ://gcc.gnu.org/onlinedocs/gcc-7.2.0/gcc/Preprocessor-Options.html#Preprocessor-Options) –

答えて

2

を示している問題は、あなたのコマンド環境を引数に二重引用符を削除する可能性が最も高い、あなたが必要とするコマンドラインからtskingい MACRO値引用符をエスケープする:

$ g++ -DMACRO=\"x.h\" 
+2

また、彼はおそらく '#define MACRO '編集単位で。 – user694733

0

0123を削除する、 これはコマンドライン引数にMACROの定義と衝突します。

関連する問題