0
project/
   CMakeList.txt // top level
   src/
   lib/
     CMakeList.txt // lib folder, builds all libraries
     lib1/
     lib2/

lib2 は lib1 に依存しており、次のように設定されています。

# Link the Unity library
include_directories(unity)
add_library(unity STATIC unity/unity.c unity/unity.h)

# Install the Unity library
install(TARGETS unity DESTINATION lib)
install(FILES unity.h DESTINATION includes)

# Include parallax libraries
include_directories(parallax)

# Simple text library
add_library(simpletext STATIC parallax/text/libsimpletext/libsimpletext.c parallax/libsimpletext/simpletext.h)
install(TARGETS simpletext DESTINATION lib)
install(FILES simpletext.h DESTINATION includes)

# Simple tools library
add_library(simpletools STATIC parallax/Utility/libsimpletools/libsimpletools.c)

target_link_libraries(simpletools simpletext)
target_link_libraries(unity simpletools)

install(TARGETS simpletools DESTINATION lib)
install(FILES simpletools.h DESTINATION includes)

しかし、コンパイルすると、simpletext.hヘッダー ファイルが .xml に見つかりませんsimpletools。ヘッダー ファイルを正しい方法で追加するにはどうすればよいですか?

4

1 に答える 1

2

install別のターゲットとして機能します。メイクファイルではmake installVisual Studioにあり、別のプロジェクトです。したがって、コンパイルが依存するものは何も配置しないでくださいinstallfile(copy ...)cmake の実行中にファイルをコピーする必要がある場合に使用できます。または、ヘッダーが含まれているフォルダーを含めるだけで、何もコピーしないこともできます。なぜヘッダーをコピーするのかまったくわかりません。

cmake コマンドを実行するたびにファイルをコピーする必要がある場合は、次のものが必要です。

FILE(COPY simpletools.h DESTINATION includes)

ただし、たとえば、simpletools.hlib1含まれていて、それを含める必要がある場合lib2は、lib1 CMake ファイルに lib2 フォルダーを含めるだけで済みます。

INCLUDE_DIRECTORIES(lib2)
于 2013-11-12T15:30:47.283 に答える