c++ - 从现有目标文件创建共享库

标签 c++ makefile shared-libraries

我的 IDE 中有一个项目。我需要为它创建一个共享库以用于扩展。我不想使用共享库设置复制该项目。有什么方法可以使用我现有项目中的目标文件 (.o) 构建共享库吗?据我了解,我可以为此编写一个 makefile。

最佳答案

我假设您使用的是某种 Unix,并且可能正在使用 GNU 工具链。在这种情况下,要创建一个合适的共享库,您需要在创建共享库之前使用与位置无关的代码标志(-fpic 或 -fPIC)编译您的代码。除非你的 .o 文件已经用这些标志编译,否则你很可能不会得到一个有效的共享库。

如果它们已经针对位置独立代码进行了编译,通常的 g++ -shared ... 应该可以解决问题。

关于c++ - 从现有目标文件创建共享库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2583770/

相关文章:

C++单例结构队列

c++ - 调试不会在断点处停止?

python-2.7 - 使用Dockerfile和centos找不到make :7 image

linux - 我怎样才能用这个制作文件

c++ - g++ 链接问题 : undefined reference to functions

python - Quantlib 1.14 和 Quantlib1.14-SWIG : versions of Visual C++ prior to VC++10 (2010) are no longer supported

c++ - 是否可以将 dll 固定在内存中以防止卸载?

linux - 所有 Linux 版本都使用/etc/ld.so.preload 吗?

linux - 如何将共享库列入黑名单以避免加载程序获取它?

c - 在 Linux 下分发具有库依赖项的 C 程序的选项