Gcc 为什么'-Lpath/to/lib';重要吗?
在将库与我的程序链接时,我收到链接器错误“未定义引用”。我知道图书馆的秩序很重要。'-Lpath/to/lib'的顺序也很重要吗?当我更改'-L..'选项而不是'-L'的顺序时,我面临的问题就解决了。请解释一下。Gcc 为什么'-Lpath/to/lib';重要吗?,gcc,Gcc,在将库与我的程序链接时,我收到链接器错误“未定义引用”。我知道图书馆的秩序很重要。'-Lpath/to/lib'的顺序也很重要吗?当我更改'-L..'选项而不是'-L'的顺序时,我面临的问题就解决了。请解释一下。-L控制链接目录,-L用于链接库(实际文件)。因此,通过更改-L标志的顺序,可以选择具有相同文件名的不同库-目录按-L提供的顺序搜索(从左到右) 在您的情况下,听起来好像最初选择的库文件不包含某些功能-这就是为什么您得到了“未定义的引用” 一般来说,可以使用带有特定库的完整路径的-l,也
-L
控制链接目录,-L
用于链接库(实际文件)。因此,通过更改-L
标志的顺序,可以选择具有相同文件名的不同库-目录按-L
提供的顺序搜索(从左到右)
在您的情况下,听起来好像最初选择的库文件不包含某些功能-这就是为什么您得到了“未定义的引用”
一般来说,可以使用带有特定库的完整路径的-l
,也可以使用构建系统(我喜欢CMake),您可以将其设置为显式选项(并且可以在构建期间在消息中打印所选文件)