【发布时间】:2010-02-12 16:43:40
【问题描述】:
我有一个动态库集合,我想在 /usr/local/lib 中链接到这些动态库,如何在不设置 LD_LIBRARY_PATH 的情况下使用 gcc 执行此操作(我听说这样做很糟糕,原因有很多) . 我花了一个小时在互联网上查看这个,并摆弄命令行参数,我让它工作的唯一方法是使用 -static -I/usr/local/lib/ 标志,但这会将动态库转换为静态库库,编译器会抛出一些警告。
感谢您的帮助
【问题讨论】:
我有一个动态库集合,我想在 /usr/local/lib 中链接到这些动态库,如何在不设置 LD_LIBRARY_PATH 的情况下使用 gcc 执行此操作(我听说这样做很糟糕,原因有很多) . 我花了一个小时在互联网上查看这个,并摆弄命令行参数,我让它工作的唯一方法是使用 -static -I/usr/local/lib/ 标志,但这会将动态库转换为静态库库,编译器会抛出一些警告。
感谢您的帮助
【问题讨论】:
将/usr/local/lib 添加到/etc/ld.so.conf 中的加载器配置并运行ldconfig。
【讨论】:
您可以在/etc/ld.so.conf 中为ldd(动态链接器)设置系统范围的搜索目录。在许多发行版(好吧,我的)中有一个/etc/ld.so.conf.d/ 目录,其中/etc/ld.so.conf 包含所有*.conf 文件。可以直接在ld.so.conf中添加目录,也可以在目录中添加.conf文件。
当然,您需要 root 访问权限才能执行此操作。
哦,是的:正如 Ignacio 所说,更改这些配置文件后运行 ldconfig。
【讨论】: