私のプロジェクトにライブラリ(具体的にはyaml-cpp)を含めることにしました。両方のプロジェクト(yaml-cppとmine)がビルドにCMAKEを使用しているので、yaml-cppのCMakeLists.txtに既にCMake:サブディレクトリからインクルードするディレクトリがありません
が含まれているので、yaml-cppのディレクトリ内にyaml-cppディレクトリをルートディレクトリ内に配置することにしました。include_directories(${YAML_CPP_SOURCE_DIR}/include)
# ...
add_library(yaml-cpp
${sources}
${public_headers}
${private_headers}
${contrib_sources}
${contrib_public_headers}
${contrib_private_headers}
)
... includeとライブラリターゲットの両方でうまくいくはずです。私は自分のCMakeLists.txtにラインinclude_directories(${YAML_CPP_SOURCE_DIR}/include)
を複製しない限り、
私の質問は...
P:\zpp\TheGameShow\TGS.cpp(16): fatal error C1083: Cannot open include file: 'yaml-cpp/yaml.h': No such file or directory
:しかし、それは、私は次のエラーを取得するコンパイル時に、結局のところ、それは必要な動作ですか?インクルードディレクトリは、サブディレクトリからルートディレクトリに伝播するべきではありませんか?私は何か間違っているのですか?
編集:私は、Visual Studio 2010を使用し、CMakeの2.8.6
そして、それは悪い設計です。それをより高いレベルに伝播する明確な方法があるはずです。 – Lothar