g++ ld共享库code::blocks错误

g++ ld shared library error with code::blocks

本文关键字:blocks 错误 code ld 共享 g++      更新时间:2023-10-16

也有类似的话题,但我还没能从中找到我的答案。

我正在使用代码::blocks IDE构建一个测试控制台应用程序。它需要加载一个名为libhdhomerun的DVB共享库。所以(来自硅尘)为高清全垒打DVB调谐器。HDHR调谐器库已经使用。/configure,…, sudo make install, ldconfig等,它都与他们的实用程序一起工作(同时构建)。所以-库在那里,OK。

库自己安装到/usr/local/lib与其他共享库不同,它实际上没有符号链接,但它也没有任何版本信息。

当我构建代码时(已经显式地包含了/usr/local/lib/libhdhomerun.so), old阶段在

处失败。
"cannot find -lhdhomerun.so"

我已经尝试了包括(/usr/local/lib/) libhdhomerun的所有组合。所以,hdhomerun。所以,libhdhomerun, hdhomerun,创建一个符号链接等等。没什么区别。

奇怪的是,我有udev, mysql和libdvbv5共享库包含在完全相同的方式,他们都很好。唯一不链接的是hdhomerun。

如果我从命令行运行手动详细链接步骤"ld -lhdhomerun"。所以——verbose",它确实失败了——因为它试图找到libhdhomerun.so.so.

感谢收到任何建议-但我确实需要继续使用code::块。

要正确链接库,您需要在您的环境中定义库路径,并使用带-l标志的正确库名。库路径在LD_LIBRARY_PATH环境变量中定义。对于-l标志到g++,不应该提供库扩展-正如您已经观察到的那样,所以在您的情况下,它应该是这样的:

-lhdhomerun