2013-04-02 96 views
0

我想获得共享库的动态链接。如何从对象或静态库创建共享库

我有对象文件和静态文件,但没有共享的lib文件。

我可以以某种方式转换它们来创建共享库吗?

+2

[Google是你的朋友](https://www.google.com/#hl=en&sclient=psy-ab&q=gcc+create+a+.so&oq=gcc+create+a+.so&gs_l=serp.3 .. 0i22i30l4.1856207.1859089.0.1859635.16.13.0.3.3.1.278.2000.1j9j3.13.0 ... 0.0 ... 1c.1.7.psy-ab.8XHwWhtObCg&PBX = 1&BAV = on.2,or.r_cp.r_qf。&FP = aec810c57fc5a1bf&BIW = 1439&bih = 854),第一,第二,第三击......他们都有正确的答案。 – Mike

回答

1

请参阅http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html

基本上,你创建这样一个共享库:

gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0.1 file1.o file2.o file3.o ... 

生成的文件将被命名为libfoo.so.1.0.1。但是,您必须确保*.o文件是使用位置无关代码的-fPIC标志创建的,否则它将不起作用。

+0

这确实可以解决我的问题,但我有新问题: gcc:致命错误:-fuse-linker-plugin,但liblto_plugin.so找不到 你知道吗?我用google搜索了这个,但没有找到解决办法。 – Tomi

+0

@TamasFekete呃,不,我不知道。如果你自己找不到解决方案,你应该开一个新的问题。 – thejh