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

发布于 2024-08-16 07:42:26 字数 181 浏览 8 评论 0原文

因此,在我运行 libtool 并从库源中获取 libfoo.lofoo.o 文件后,如何转换 libfoo.lo > 文件写入普通的 Linux 共享库,例如 libfoo.so.1.0.0 以便我可以在目标系统上安装并链接到它?

So after I ran libtool and got out a libfoo.lo and foo.o file from my library source, how do I convert the libfoo.lo file into a normal Linux shared library, like libfoo.so.1.0.0 so I can install and link to it on my target system?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

十秒萌定你 2024-08-23 07:42:26

从问题中提到的输出来看,您似乎使用 --mode=compile 模式运行 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 了解更多信息。

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

From the outputs mentioned in the question, it looks like you ran libtool with --mode=compile mode. You will need to run libtool again with --mode=link to produce .a and .so libraries.

libtool is just a simple wrapper for gcc, ln ar and ranlib which is needed to produce libraries. All it does is run gcc adding the necessary options to ensure that your static and shared libraries are created correctly.

When compiling libtool inserts the -fPIC tag to ensure the necessary generation of position independent code needed for shared libraries. The .o files are normal object files that can be archived into a static .a file. The .lo files are object files with position independent code which can now be linked into a .so file.

When linking libtool will run ar to create a static library or ln to link the objects files into a .so shared library.

libtool also can install the library when desired using the --mode=install.

See http://www.gnu.org/software/libtool/manual/libtool.html for more info.

Please remember that when building an executable there are always two stages, compiling and linking.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文