![]() |
1
6
据我所知,使用一次配置运行和ExternalProject功能无法实现您想要的目标。你似乎在使用
我将假设你想使用传递链接的(相当自然的)思想。 根据您是否自己开发libA/libB,有不同的选项。我将解释“最干净”的做法。缺点是这也需要修改libA项目cmake。[如果无法做到这一点,则需要手动将libB.a添加为硬编码的链接库;即解决传递性问题。抱歉!]
传递链接的关键是您需要导入实际的
目标
由CMake-in创建
这将在链接时包含libB,并设置正确的包含路径(如果在
关键问题是在 相同的配置运行 当然,无法生成findpackage将设置的所有内容,因为尚未编译/安装任何内容。外部项目背后的想法是,你告诉它把东西放在哪里,这样你就知道应该在哪里找到东西,但不幸的是,这永远不会包括像链接库这样的可传递的东西。 有(一如既往)更快、更脏的解决方案,然而,通过CONFIG模式下的find_package将包模块化并将其作为目标提供的“新”cmake方式是将cmake感知项目相互包含的最佳且简单的方式。 |
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 4 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 4 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 4 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 4 月前 |