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

时间:2010-04-06 09:25:48

标签: c++ makefile shared-libraries

我的IDE中有一个项目。我需要创建一个共享库来扩展。我不想使用共享库设置制作此项目的副本。有没有办法使用我现有项目中的目标文件(.o)构建共享库?据我了解,我可以为此编写一个makefile。

2 个答案:

答案 0 :(得分:13)

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

如果它们已经针对与位置无关的代码进行了编译,那么通常的g++ -shared ...就可以了。

答案 1 :(得分:7)

g++ -shared -fPIC -o myshared.so *.o