aix 的c库为什么都是静态库_c – CMake:在静态库中包含库依赖项

好的,我有一个解决方案.首先,重要的是要认识到静态库不会将其他静态库链接到代码中.必须创建一个组合库,在Linux上可以使用ar完成.有关详细信息,请参阅Linking static libraries to other static libraries.

考虑两个源文件:

test1.c:

int hi()

{

return 0;

}

test2.c中:

int bye()

{

return 1;

}

CMakeLists.txt文件是创建两个库,然后创建一个组合库,如下所示:

project(test)

add_library(lib1 STATIC test1.c)

add_library(lib2 STATIC test2.c)

add_custom_target(combined ALL

COMMAND ${CMAKE_AR} rc libcombined.a $ $)

在这种情况下,ar命令的选项与平台相关,尽管CMAKE_AR变量与平台无关.我将四处寻找是否有更通用的方法来做到这一点,但这种方法适用于使用ar的系统.

add_custom_target(combined ALL

COMMAND ${CMAKE_CXX_ARCHIVE_CREATE} libcombined.a $ $)

这应该是与平台无关的,因为这是用于由CMake在内部创建存档的命令结构.当然,您希望传递给归档命令的唯一选项是rc,因为这些选项已硬连线到用于ar命令的CMake中.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值