相关主题是这里
尝试将一些文件链接到 /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
)。