cmake - 用 target_link_libraries 链接 2 个静态库
问题描述
我正在尝试使用 cmake 链接两个静态库,但是当我使用ar -t
.
一个库 A 链接到 B 的小例子:
文件a.c
:
void a(){}
文件b.c
:
void b(){}
文件CMakeLists.txt
:
project(test C)
add_library(a STATIC "a.c")
add_library(b STATIC "b.c")
target_link_libraries(a b)
我希望在输出中看到两个目标文件,ar -t liba.a
但我只a.c.o
在输出中看到。
解决方案
您始终可以使用 VERBOSE=ON 参数来调试您的 CMakeLists.txt(在 Linux 上),这样您就可以验证命令是否是您所期望的。
$> make VERBOSE=ON
在您的情况下,CMake 扫描 ac 的依赖项并将bc丢弃为ac的真正依赖项,这就是它没有链接的原因。
推荐阅读
- swift - 试图使3列可删除按钮的行,但按钮的第一行不可删除
- jquery - Django/Jquery inlineformset:为什么在我的表单集中使用 max_num 选项时隐藏添加行按钮?
- algorithm - 随着变量值的变化,有效地修改许多独立事件的组合概率(模拟模型)
- pine-script - 优化 Pine 脚本以避免重绘并允许做空交易
- c# - 部署期间基于 Unity 3D + MRTK 的项目中的 ArgumentNullException 是什么意思以及如何解决?
- swift - 为什么 Firestore 的 getDocument 方法返回一个空字典?
- python - 如何在 python 中保存具有负像素值的图像?
- r - R:将同一条目的不同拼写合并为一个
- azure-iot-hub - 将设备与 Azure IoT Central 连接问题
- c# - 如何使用 XNode.ReadFromAsync()