各ターゲットに固有のヘッダファイルstdafx.hがプリコンパイルされています。CMakeで明示的なヘッダファイルを指定する
include_directories(<prefix>/include_a)
include_directories(<prefix>/include_b) #<---- contains stdafx.h that should NOT be used
include_directories(<project_dir>/) #<----- contains stdafx.h that should be used
add_executable(<project_name> <sources>)
問題:私のcmakeのプロジェクトは、おおよそ以下のようになります。私は<prefix>/include_b
ディレクトリの一部として提供されますプリコンパイル済みヘッダーを除外したいです。それが不可能な場合は、ヘッダファイルを明示的に指定してください。私はgcc
が-include
オプションをサポートしていますが、私の要件に合ったCMakeのクリーナーオプションはありますか?あなたが(明示的にCMakeによってサポートされていない)インクルードファイルを強制したくない場合は
ますもしドンインクルードファイルを強制したくないCMakeによって明示的にサポートされていません。例えば、 [ここ](http://stackoverflow.com/questions/32773283/cmake-include-header-into-every-source-file))、私はあなたのインクルードパスの順序で答えると思う。この例は、["CMake Build System:Transitive Usage Requirements"のドキュメント(https://cmake.org/cmake/help/latest/manual/cmake-buildsystem.7.html#transitive-usage-requirements)に隠されています。 ):例えば、 "ターゲットのリンクされたライブラリをlib1 lib2 lib3の順で指定しなければならないが、インクルードディレクトリは..."を参照してください。 – Florian
'stdafx.h'はVisual Studioのようなにおいがしますが、msvcタグは入れていませんか? –
@Florianはこれを更新するのを忘れました。 – PnotNP