【问题标题】:How to make .so file with libtool如何使用 libtool 制作 .so 文件
【发布时间】:2016-12-15 22:58:53
【问题描述】:

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

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.la 和 libtest.a。我需要共享库libtest.so。

【问题讨论】:

  • 我在这里看到过类似的问题,但在大多数情况下,它们都充斥着关于 GNUmake、autotools、autoconf 或特定于应用程序的构建问题的不相关信息。我的目标是获得核心问题的简明规范答案。

标签: shared-libraries libtool


【解决方案1】:

尝试添加 -rpath 选项,例如: libtool --mode=link gcc -o libtest.la test1.lo -rpath /tmp

-rpath 选项告诉 Libtool 安装库的位置 如果路径丢失,则不会生成共享库。

【讨论】:

    【解决方案2】:

    我被这个问题困扰了很久,直到后来我仔细阅读了configure中的日志文件,脚本检测到LD无法生成动态链接文件(.so)。问题是我的环境变量 LD 设置为 g++。取消设置或更改为 ld 即可解决问题。

    【讨论】:

      猜你喜欢
      • 2011-04-05
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-26
      相关资源
      最近更新 更多