【发布时间】:2009-12-12 23:54:07
【问题描述】:
如何确定 Ubuntu Linux 库路径?也就是说,链接器在链接我的程序时如何知道从哪里获取目标文件?
【问题讨论】:
如何确定 Ubuntu Linux 库路径?也就是说,链接器在链接我的程序时如何知道从哪里获取目标文件?
【问题讨论】:
查看/etc/ld.so.conf 和/etc/ld.so.conf.d/ 目录中的文件——这就是它的设置位置。
【讨论】:
使用-L参数和环境变量LD_LIBRARY_PATH链接时可以显式设置文件路径。
还有一些使用-L 参数硬编码到链接器中的路径。您可以使用以下命令查看这些内容:
gcc -Xlinker -v
【讨论】:
如果不是标准路径(/lib、/usr/lib),您可以使用编译器标志指定位置。对于g++,它是-L/some/path/lib。如果您使用自动工具,如果您需要特定路径,则可以使用 LDFLAGS=-L/some/path/lib 进行配置。如果 configure 已经为项目正确设计,它应该有一个--with-some-library=PATH 选项,您还可以在其中指定该库的路径。
【讨论】:
链接时,需要指定-L标志来指示库所在的位置。在运行时,动态链接器使用“/etc/ld.so.conf”、“/etc/ld.so.conf.d/*”中给出的路径和 LD_LIBRARY_PATH 的值。
【讨论】:
"sudo ldconfig" 如果你刚刚安装了新的东西,它会更新系统的缓存。
【讨论】: