gpt4 book ai didi

c++ - 如何链接到 libtool static la 库?

转载 作者:太空狗 更新时间:2023-10-29 21:39:51 24 4
gpt4 key购买 nike

我编译了this library成功地。它生成一个 libcds2.la 文件,我试图将其链接到我自己的项目中。我的所有文件(包括 .h 文件)都在与我的项目文件相同的目录中。当我尝试链接和使用所述库的功能时,使用:

g++ -o test -I/opt/include/ -L/opt/lib/ -lcds2 libcdsNoptrs.cpp util.cpp

回来了

./test: error while loading shared libraries: libcds2.so.2: 
cannot open shared object file: No such file or directory

不管是什么。但关键是大多数时候它只是不识别库。我假设我在文件路径上做错了什么,但无法弄清楚。我的测试文件是一个 C++ 文件,包括 #include "libcds2/array.h" 并且所有内容都安装在 opt/lib, opt/include ,丑陋,我知道,但这就是 Makefile 生成的内容。

有什么指点吗?

最佳答案

libtool .la 是一个“元数据”文件。构建完 cds2 库后,预计 libtool 也将在“链接”模式下用于构建包的任何测试等。

通常,在您找到.la 文件的目录中,您会在 下找到.a.so >.libs 子目录。 .libs/libcds2.a 文件将在那里找到,前提是 configure 被赋予了 --enable-static 选项(或者它被启用默认情况下)。但是,我的理解是你已经在 /opt 中安装了这个包:

g++ -I/opt/include/ libcdsNoptrs.cpp util.cpp -o test /opt/lib/libcds2.a

否则,如果未安装 libcds2,只需提供路径:.../libcds2/lib/.libs/libcds2.a

除非你想在 --link 模式下使用 libtool 和 -static 来处理所有事情。但是学习 libtool 的优点通常是未雨绸缪:)

关于c++ - 如何链接到 libtool static la 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32059026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com