このページconfigure_file
で説明されているように、機能の可用性チェックで Cmakeのコマンドを使用しています。そのページは、次のようなコマンドを使用することを提案しています。
configure_file(config.h.in config.h)
に変換${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
され${CMAKE_CURRENT_BINARY_DIR}/config.h
ます。しかし、プログラムをコンパイルすると、コンパイラは${CMAKE_CURRENT_SOURCE_DIR}
ヘッダー (例: config.h
) のみを検索し、${CMAKE_CURRENT_BINARY_DIR}
. 当然、コンパイラはconfig.h
それが生成された場所を見つけられず、ビルドは失敗します。
この問題を解決する標準的な方法は何ですか? ソースディレクトリに作成されるCMakeLists.txt
ように変更する必要がありますか? config.h
または、ビルド ディレクトリをインクルード パスに追加するように変更する必要がありますか? (そして、実際には、なぜこれを手動で処理しなければならないのでしょうか? [半修辞的な質問])
この質問は同様の問題に関するものですが、可能な解決策として両方のオプションが提案されています。標準的な慣行があるかどうか、またはこれが Cmake の使用方法について何かが欠けていることを示しているかどうかを知りたいです。