12

cmake から GenerateExportHeader モジュールを使用しようとしています。

私のCmakeLists.txtの一部:

add_compiler_export_flags()
add_library(gui SHARED ${gui_CPP} ${gui_HPP})
generate_export_header(gui)

gui プロジェクト自体には問題なく機能しますが、gui の .h ファイルを別のプロジェクトに含めようとすると、#include "gui_export.h" が見つかりません。他のプロジェクトのインクルード パスにない gui のビルド ディレクトリに gui_export.h が作成されているため、これは明らかです。

簡単な解決策は、他のプロジェクトのインクルードに gui のビルド ディレクトリを追加することですが、次のようになります。

どうすればこの問題をうまく解決できますか?

4

3 に答える 3

7

EXPORT_FILE_NAME を使用してこの問題を解決したので、次のようになりました。

generate_export_header(gui EXPORT_FILE_NAME ${CMAKE_BINARY_DIR}/exports/gui_export.h)

そしてすべてのプロジェクトで ${CMAKE_BINARY_DIR}/exports/ をインクルードに追加します

于 2013-06-20T07:52:44.350 に答える
-3

export() を使用して、CMake がビルド ツリーを見つけられるようにします。config.cmake ファイルがどのように見えるかを確認するには、gitorious の openobex を参照してください。

OTOH、生成されたエクスポートヘッダーをパブリックヘッダーで使用したり、インストールしたりしないでください。

于 2013-06-15T13:23:22.020 に答える