首页 > 解决方案 > 为什么'-Lpath/to/lib'的顺序很重要?

问题描述

将库与我的程序链接时,我收到链接器错误“未定义的引用”。我读过这篇文章,我明白图书馆的顺序很重要。'-Lpath/to/lib' 的顺序也很重要吗?当我更改“-L..”选项而不是“-l”的顺序时,我面临的问题得到了解决。请解释一下。

标签: gcc

解决方案


-L控制链接目录,-l用于链接库(实际文件)。因此,通过更改-L标志的顺序,您可以选择具有相同文件名的不同库 - 按提供的顺序搜索目录-L(从左到右)

在您的情况下,听起来最初选择的库文件不包含某些功能-这就是您得到“未定义引用”的原因。

一般来说,使用-l特定库的完整路径或构建系统(我喜欢 CMake)可能值得使用,您可以在其中将其设置为显式选项(并可能在构建期间在消息中打印所选文件)。


推荐阅读