如何使用libtool制作.so文件

4

我目前正在使用以下方法创建共享库:

gcc -c test1.c -fPIC -o test1.o
gcc -c test2.c -fPIC -o test2.o
...
gcc test1.o test2.o ... -shared -o libtest.so

我该如何使用 libtool 完成同样的任务呢?到目前为止,我已经完成了以下操作:

libtool compile gcc -c test1.c -o test1.o
libtool compile gcc -c test2.c -o test2.o
...
libtool link gcc test1.lo test2.lo ... -o libtest.la

然而,这只创建了libtest.lalibtest.a。我需要共享库libtest.so

我在这里看到了类似的问题,但大部分都混杂着关于GNUmake、autotools、autoconf或特定应用程序构建问题的无关信息。我的目标是得到一个简明扼要的核心问题的权威答案。 - Matthew Bedford
2个回答

2
尝试添加-rpath选项,例如: libtool --mode=link gcc -o libtest.la test1.lo -rpath /tmp -rpath选项告诉Libtool在哪里安装库。如果路径丢失,则不会生成共享库。

0
我曾经困扰于这个问题有一段时间,后来我仔细阅读了 configure 的日志文件,脚本检测到 LD 无法生成动态链接文件(.so)。问题在于我的环境变量 LD 被设置为 g++。将其取消设置或更改为 ld 可以解决该问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接