如何更改 gcc 的库默认目录或添加其他路径?

如何更改 gcc 的库默认目录或添加其他路径?

相关主题是这里

尝试将一些文件链接到 /lib,如下所示

[/opt/lib] # ln -s libncurses.so.5.7 /lib/
[/opt/lib] # ln -s libncursesw.so.5.7 /lib/

编译器仍然找不到任何 ncurses 库...

尝试在 psybnc 源代码中编译 menuconfig。那些自动工具在哪里寻找库?如何调试自动工具,或者只是告诉我如何添加另一个库路径,因为需要使用 /opt/lib,而不是 /lib 或自动工具寻找的任何其他位置。

附言:这不起作用

[/share/HDA_DATA/Linux/psybnc] # export LD_LIBRARY_PATH="/opt/lib:$LD_LIBRARY_PATH"         
[/share/HDA_DATA/Linux/psybnc] # make menuconfig
Initializing Menu-Configuration
[*] Running Conversion Tool for older psyBNC Data.
Using existent configuration File.
[*] Running Autoconfig.
System: Linux
Socket Libs: Internal.
Environment: Internal.
Time-Headers: in time.h and sys/time.h
Byte order: Big Endian.
IPv6-Support: Yes, general support. But no interface configured.
async-DNS-Support: Yes.
SSL-Support: No openssl found. Get openssl at www.openssl.org
Creating Makefile
[*] Creating Menu, please wait.
This needs the ncurses library. If it is not available, menuconf wont work. If you are using curses, use make menuconfig-curses instead.

[/share/HDA_DATA/Linux/psybnc] # ls /opt/lib | grep libncurses
libncurses.so@
libncurses.so.5@
libncurses.so.5.7*
libncursesw.so@
libncursesw.so.5@
libncursesw.so.5.7*

更新:

该主题已标记为删除,答案发布在我上面提到的相关主题上

答案1

尝试在编译之前设置 LD_LIBRARY_PATH,在 bash 控制台中输入:

export LD_LIBRARY_PATH="your_new_lib_path"

或者,保留以前的设置并只在前面添加新的库路径:

export LD_LIBRARY_PATH="your_new_lib_path:$LD_LIBRARY_PATH"

答案2

LIBRARY_PATH是 GCC 在寻找要链接的库时使用的环境变量。相反,LD_LIBRARY_PATH另一个答案错误地建议,由动态链接器(在启动时为已编译的二进制文件加载共享库的链接器)使用,而不是由 GCC 调用的链接器使用。关键区别在于“动态链接器”(例如/lib64/ld-linux-x86-64.so.2)与简单的“链接器”(例如/usr/bin/ld)。

相关内容