我是cmake的新手,我正在尝试在UNIX和Windows平台上构建代码。我有add_subdirectory(A)
和add_subdirectory(B)
。如果仅构建add_subdirectory(A)
,则它将头文件安装到某个xyz
位置,然后在构建add_subdirectory(B)
时,它将使用以前安装的xyz
位置的头文件。但是,当我尝试同时构建add_subdirectory(A)
和add_subdirectory(B)
时,由于没有安装xyz
位置的头文件而导致失败。所以我的问题是,有没有一种方法可以告诉cmake构建并安装add_subdirectory(A)
,然后开始构建add_subdirectory(B)
。
我试图上网但没有运气。
我的主人 CMakeLists.txt :
add_subdirectory(TradeFlowCommonFrameworkLib/cpp/src)
add_subdirectory(TradeFlowCommonDataLib/cpp/src)
install(EXPORT Findfotmc DESTINATION ${INSTALL_FOTMC}/cmake)
----------------------------------------------------------------
答案 0 :(得分:0)
添加子目录不会在它们之间指定依赖关系。您必须将第二个可执行文件/库显式链接到第一个库。
在您的B项目的子CMakeLists中(TradeFlowCommonDataLib / cpp / src),您必须添加以下内容:
target_link_libraries(B A)