如何安装和使用libtool共享库(.lo文件)?

时间:2009-12-31 15:45:52

标签: c++ autotools autoconf libtool

因此,在我运行libtool并从我的库源中获取libfoo.lofoo.o文件后,如何将libfoo.lo文件转换为普通的Linux共享库,如{{ 1}}所以我可以在我的目标系统上安装并链接到它?

1 个答案:

答案 0 :(得分:7)

从问题中提到的输出,看起来你用--mode =编译模式运行libtool。您需要使用--mode = link再次运行libtool以生成.a和.so库。

libtool只是生成库所需的gcc,ln ar和ranlib的简单包装器。它所做的就是运行gcc添加必要的选项,以确保正确创建静态和共享库。

编译libtool时,插入-fPIC标记以确保共享库所需的位置无关代码的生成。 .o文件是普通的目标文件,可以归档到静态.a文件中。 .lo文件是具有位置无关代码的目标文件,现在可以链接到.so文件中。

当链接libtool将运行ar以创建静态库或ln将对象文件链接到.so共享库时。

libtool也可以在需要时使用--mode = install。

安装库

有关详细信息,请参阅http://www.gnu.org/software/libtool/manual/libtool.html

请记住,在构建可执行文件时,总会有两个阶段,即编译和链接。