![]() |
1
6
通常,这是不可能的,除非重新编译静态库。 这里的问题是动态库必须用 position independent code ,以便可以将它们动态加载到现有进程的地址空间中。也就是说,编译器必须以特定的方式生成代码,以便适合从共享库执行。 由于我们对静态库没有这个要求,编译器可以在那里自由创建位置相关的代码(这正是在您的案例中所发生的情况),这禁止它稍后链接到共享库中。因此,为了使其工作,您需要更改 静态库 使其知道稍后将链接到共享库。只有使用正确的选项重新编译静态库,您才能做到这一点。
当然,设置正确构建选项的确切方法取决于用于构建静态库的构建系统。例如,对于使用CMake构建的静态库,可以更改其构建脚本,使其设置
|
![]() |
Dominic · 如何在CMake中检查可用的HDF5选项? 1 年前 |
![]() |
dopller · 使用cmake将仅标题库包含到我的项目时出错 2 年前 |
![]() |
lu_K · 在同一程序中使用OpenMP和MPI 2 年前 |
![]() |
SteakOverflow · 将CMake BOOL转发到C++ 3 年前 |