在构建add_subdirectory(B)之前安装add_subdirectory(A)头文件

时间:2019-06-05 14:37:28

标签: cmake

我是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)

----------------------------------------------------------------

1 个答案:

答案 0 :(得分:0)

添加子目录不会在它们之间指定依赖关系。您必须将第二个可执行文件/库显式链接到第一个库。

在您的B项目的子CMakeLists中(TradeFlowCommonDataLib / cpp / src),您必须添加以下内容:

target_link_libraries(B A)