CMake を使用する 2 つのプロジェクトがあります。プロジェクト A は、プロジェクト B にリンクされる静的ライブラリをビルドします。問題は、プロジェクト A からソース ファイルを変更して両方のプロジェクトをビルドすると、プロジェクト B が自動的に再度リンクされないことです。プロジェクト A (静的ライブラリ) からの出力をプロジェクト B に追加するにはどうすればよいですか?
編集:これが私の問題の例です:
ProjectA CMakeLists.txt:
cmake_minimum_required (VERSION 2.6)
PROJECT(PROJECTA)
ADD_LIBRARY(projectA STATIC "src/foo.cpp")
ProjectB CMakeLists.txt:
cmake_minimum_required (VERSION 2.6)
PROJECT(PROJECTB)
set(PROJECTA_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../ProjectA)
include_directories(${PROJECTA_DIR}/include)
link_directories(${PROJECTA_DIR}/build)
ADD_EXECUTABLE(projectB "src/main.cpp")
target_link_libraries(projectB projectA)
問題を再現するには:
- 両方のプロジェクトをビルドします (ProjectA を最初にビルドする必要があります)。
- ProjectA/src/foo.cpp を変更
- ProjectA をビルドします (libProject.a が更新されます)。
- ProjectB をビルドします (実行可能ファイルを新しい libProject.a にリンクしません。代わりに、変更が行われていないと想定し、何もしません) 。