linux - 无法将库目录添加到 ld

标签 linux ld

我在家里创建了自己的库目录 (/home/mathieu/lib)。我在这个目录中有一个名为 libmath.so 的库。 要将此目录添加到 ld,我已将路径添加到文件 /etc/ld.so.conf 中。我通过执行 sudo ldconfig 重新加载了缓存。 当我执行 sudo ldconfig -p | grep libmath.so 我得到 libmath.so (libc6) =>/home/mathieu/lib/libmath.so。所以它有效。

问题

当我执行 ld -lmath 时,我得到:

attempt to open /usr/i486-linux-gnu/lib32/libmath.so failed
attempt to open /usr/i486-linux-gnu/lib32/libmath.a failed
attempt to open /usr/local/lib32/libmath.so failed
attempt to open /usr/local/lib32/libmath.a failed
attempt to open /lib32/libmath.so failed
attempt to open /lib32/libmath.a failed
attempt to open /usr/lib32/libmath.so failed
attempt to open /usr/lib32/libmath.a failed
attempt to open /usr/local/lib/i386-linux-gnu/libmath.so failed
attempt to open /usr/local/lib/i386-linux-gnu/libmath.a failed
attempt to open /usr/local/lib/libmath.so failed
attempt to open /usr/local/lib/libmath.a failed
attempt to open /lib/i386-linux-gnu/libmath.so failed
attempt to open /lib/i386-linux-gnu/libmath.a failed
attempt to open /lib/libmath.so failed
attempt to open /lib/libmath.a failed
attempt to open /usr/lib/i386-linux-gnu/libmath.so failed
attempt to open /usr/lib/i386-linux-gnu/libmath.a failed
attempt to open /usr/lib/libmath.so failed
attempt to open /usr/lib/libmath.a failed
ld: cannot find -lmath

ld 甚至不在 /home/mathieu/lib 路径中寻找。

gcc test.c -o test -lmath返回

/usr/bin/ld: cannot find -lmath
collect2: error: ld returned 1 exit status

你有解决办法吗?

谢谢。

最佳答案

可以使用LIBRARY_PATH添加gcc编译时搜索的目录,

export LIBRARY_PATH=$HOME/lib

或者,您可以将库添加到 -L 命令行标志以 gcc 就像

gcc test.c -o test -lmath -L$HOME/lib

问题是您对 /etc/ld.so.conf 的修改将在应用程序启动时用于查找正确的库(而不是在编译时)。

关于linux - 无法将库目录添加到 ld,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26598143/

相关文章:

linux - 按日期时间计算 linux 中的文件

linux - 加载警告 : cannot find entry symbol _start

linux - 在 Linux 中强制动态链接器在运行时加载库

linux - 共享库符号冲突和静态链接(在 Linux 上)

c - 在 GNU 链接描述文件中带有空输入段列表的 `section` 命令有什么影响?

linux - 嵌入式设备的简单 Web 应用程序

何时使用括号之间的 Linux 区别

c++ -/usr/bin/ld : cannot find local libmpifort. 所以

linux - 等待用户输入而不回车,linux x86 汇编器

c++ - 如何强制 gcc 链接未使用的静态库