cmake - 在构建 add_subdirectory(B) 之前安装 add_subdirectory(A) 头文件
问题描述
我是 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)
----------------------------------------------------------------
解决方案
添加子目录不会指定它们之间的依赖关系。您必须将您的第二个可执行文件/库显式链接到您的第一个库。
在您的 B 项目 (TradeFlowCommonDataLib/cpp/src) 的子 CMakeLists 中,您必须添加如下内容:
target_link_libraries(B A)
推荐阅读
- json - 扑。将列表复制到列表时出错
- angular - Angular向日期属性添加数字
- reactjs - 在 Ant 设计中使用 onChange 更改选项卡时如何获取选项卡的标题
- visual-studio - Visual Studio 代码和 GIT
- c# - JsonDocument - 读取子对象
- javascript - 如何获取输入值并发送到邮件地址?
- java - jME3:无法使用 PhysicsCollisionListener 检测与玩家节点的碰撞
- arrays - Vuejs 向现有数组添加新值
- python - 使用带有 imblearn 的管道后如何检索选定的特征名称
- azure - 加载程序集的 U-SQL 问题