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

the*_*tor 3 c++ autoconf autotools libtool

所以之后我跑的libtool,并得到了libfoo.lofoo.o从我的库源文件,我怎么转换libfoo.lo文件转换成一个正常的Linux共享库,就像libfoo.so.1.0.0这样我可以在我的目标系统上安装并链接到它?

dor*_*ron 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.

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