【发布时间】:2015-08-03 19:54:11
【问题描述】:
当使用 GCC 编译大多数东西时,我得到这个错误:
/..//bin/ld: cannot find crtbeginS.o: No such file or directory
crtbeginS.o 存在于 /usr/local/lib/gcc/x86_64-unknown-linux-gnu/6.0.0/crtbeginS.o(从 GCC 主干,6.0.0-trunk 安装)
我将该目录添加到 ldconfig 并运行 ldconfig,但它没有选择任何其他目录。 (我在想,因为它是 .o 而不是 .so)
作为临时修复,我尝试创建一个指向 /usr/local/lib64/crtbeginS.o 的符号链接 - 但这给出了相同的错误。
怎么办,所以一直看/usr/local/lib/gcc/x86_64-unknown-linux-gnu/6.0.0/目录找库?
如果我运行gcc -print-search-dirs|grep "/usr/local/lib/gcc/x86_64-unknown-linux-gnu/6.0.0",它会显示库:=/usr/local/lib/gcc/x86_64-unknown-linux-gnu/6.0.0/:... 但是,这当然是 gcc 而不是 ld。
如果我运行 ld --verbose | grep SEARCH_DIR,我会看到 /usr/local/lib/gcc_x86_64-unknown-linux-gnu/6.0.0 不包括在内。
我真的很想将此作为系统范围的默认设置,因此我不必为所有内容都提供 -L。如果有必要,我可以从源代码构建 bintools。
【问题讨论】: