2012-01-29 10 views
2

CMakeにインクルードパス(-I...)の冗長性を強制したいと思います。現在の出力を考慮してくださいどこ出力にパスとCMakeを含める

/D/Software/MinGW/bin/g++.exe -DQT_DEBUG -fmessage-length=0 -mfpmath=sse -msse2 -fopenmp -g3 -gdwarf-2 @CMakeFiles/go.dir/includes_CXX.rsp -o CMakeFiles/go.dir/main.cpp.obj -c /D/Users/Haroogan/Development/Workspace/New2/main.cpp 

、代わりのリストを示すのは、むしろ@CMakeFiles/go.dir/includes_CXX.rspを示し、経路が挙げられます。実際、このファイルにはインクルードパスが含まれています。

どのように強制的にCMakeやMakeなどを出力パスに含めることができますか?

+1

注意を渡すためにファイルを使用してはるかに安全ですリンカとコンパイラのフラグを含む 'link.txt'と 'flags.txt'の2つのファイルになります。 –

答えて

2

セット(CMAKE_CXX_USE_RESPONSE_FILE_FOR_INCLUDES 0)のMinGWを使用しているときにも生成される出力を見ることができ

2

することもできますキャッシュ変数を持って、私は他の発電機のいくつかを考える

make VERBOSE=1 

あなたが入力して、コマンドラインフラグの完全なセットを取得することができます(それはあなたがしているように見える)のUnixのMakefileを使用する場合、設定する。

+0

私は 'VERBOSE = 1'と' set(CMAKE_VERBOSE_MAKEFILE ON) 'を試しましたが、' @CMakeFiles/go.dir/インクルードパスリストの代わりにincludes_CXX.rsp'が表示され続けます。 –

+0

**注:** MSYS Makefilesを使用しています –

+0

私はMSYSのMakefileを使用していません - 私はそれがそこで動作すると思ったので、私はこれの底に達することができる場合は表示されます。 –

1

パラメータ@CMakeFiles/go.dir/includes_CXX.rspは実際にコンパイラに渡されるもので、コンパイラはこのファイルを読み取り、オプションのリストとして解釈します。このメカニズムの説明については、man gccを参照してください。

MS Windowsのシェルには複雑なコンパイルコールで簡単に超えることができるコマンドラインの長さがあるため、このメカニズムが使用されます。どこかのビルド-dirの\ YourProject \ CMakeFiles \ YourProject.dirに:そのためには、パラメータ

関連する問題