【问题标题】:CMake: add static library to shared libCMake:将静态库添加到共享库
【发布时间】:2010-03-30 10:39:48
【问题描述】:

我想用 cmake 创建共享库,但我还需要将它链接到第三方静态库。

例如如果它应该包含我自己的file1.o,file2.o,然后静态链接libfoo.la,然后作为.so文件写入磁盘,该文件动态链接到libbar.so

有可能吗?

【问题讨论】:

  • 首先,你可以直接使用目标文件,但是如果你得到了file1.o和file1.o的源文件直接使用它们,这样CMake就可以确定使用哪种语言(C/ C++/fortran/...) 一些问题: 1. libbar.so 是您要创建的共享库吗? 2. libfoo.la 是第三方静态库吗? 3、你有file1.o和file2.o的源码吗?

标签: cmake


【解决方案1】:

可以将静态库链接到共享库。在大多数 Unix 上,您需要 在构建静态库时添加 -fPIC 标志或其等效项以生成与位置无关的代码。在 Windows 上,没有 PIC,即将静态链接到共享只是开箱即用。

【讨论】:

    猜你喜欢
    • 2015-10-08
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2018-03-18
    相关资源
    最近更新 更多