gpt4 book ai didi

c++ - 无法让 ld 找到库

转载 作者:太空宇宙 更新时间:2023-11-04 12:36:48 24 4
gpt4 key购买 nike

我试图在没有 sudo 权限的 Linux 机器上从源代码构建一个包,但链接器找不到必要的库:

ld: cannot find -lstdc++

我已经找到了一些涉及重新安装库的解决方案,但如果没有 sudo 我就无法遵循。

libstdc++.so.6 存在于 /usr/lib/usr/lib64 以及命令 ld -lstdc++ --verbose 输出:

......
attempt to open /usr/lib64/libstdc++.so failed
attempt to open /usr/lib64/libstdc++.a failed
attempt to open /usr/local/lib/libstdc++.so failed
attempt to open /usr/local/lib/libstdc++.a failed
attempt to open /lib/libstdc++.so failed
attempt to open /lib/libstdc++.a failed
attempt to open /usr/lib/libstdc++.so failed
attempt to open /usr/lib/libstdc++.a failed
ld: cannot find -lstdc++

所以我做了一个符号链接(symbolic link):

ln -s /usr/lib/libstdc++.so.6 ~/.local/lib/libstdc++.so

然后将路径添加到 LIBRARY_PATH:

export LIBRARY_PATH='/home/xxx/.local/lib'

但是编译只是打印相同的输出(它没有在添加的路径中搜索库)。在编译没有成功之前,我也尝试过这些:

export LD_FLAGS='-L/home/xxx/.local/lib'
export LIBS='-lstdc++'
export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/home/xxx/.local/lib'

我做错了什么?或者我在这里误解了什么?

最佳答案

您要为哪种架构编译? 32 位还是 64 位?因为你在 64 位系统上,但链接了 32 位变体,你需要仔细检查。

“ld -L/home/xxx/.local/lib --verbose -lstdc++”是什么意思?

顺便说一句:最好让机器的管理员安装开发包,你甚至可能会错过头文件和其他文件。

关于c++ - 无法让 ld 找到库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41498565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com