当前位置:   article > 正文

解决Clang编译器出现/usr/bin/ld: crtbegin.o: No such file: No such file or directory_detecting c compiler abi info - failed

detecting c compiler abi info - failed

今天在使用Clang编译器编译项目时出现问题,项目使用了CMake,在cmake时报错:

-- Detecting C compiler ABI info - failed
/usr/bin/ld: crtbegin.o: No such file: No such file or directory
    clang-9: error: linker command failed with exit code 1 (use -v to see invocation)
  • 1
  • 2
  • 3

如下图:
在这里插入图片描述
在之前还是正常的。
写一个简单的C程序进行编译
在这里插入图片描述
同样出现:

/usr/bin/ld: crtbegin.o: No such file: No such file or directory
  • 1

使用

clang -v
  • 1

查看输出:
在这里插入图片描述
在另一台可以正常使用的机器上使用同样的命令输出:
在这里插入图片描述
可以看到clang使用的GCC安装路径未被正确选择,由于之前Clang9是使用的GCC 4.9.3编译的,但是现在找不到相应的或者更高版本的GCC,所以出现错误:

/usr/bin/ld: crtbegin.o: No such file: No such file or directory
  • 1

导致CMake测试编译器的程序编译测试未通过。
既然,Clang是在

/usr/lib/gcc/x86_64-unknown-linux-gnu/

或者

/usr/lib/gcc/x86_64-redhat-linux-gnu/

目录查找相应的GCC版本的,准确地说应该是在/usr/lib/gcc/目录中的所有子目录中进行查找的。那看看只需要把相应的GCC版本符号连接到此目录即可:

ln -s /usr/local/gcc-4.9.3/lib/gcc/x86_64-unknown-linux-gnu/4.9.3 /usr/lib/gcc/x86_64-redhat-linux
  • 1

或者

ln -s /usr/local/gcc-4.9.3/lib/gcc/x86_64-redhat-linux-gnu/4.9.3 /usr/lib/gcc/x86_64-redhat-linux
  • 1

现在再查看,使用安装的GCC 4.9.3了
在这里插入图片描述
再编译前面写的测试程序:
在这里插入图片描述
现在正常了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/922849
推荐阅读
相关标签
  

闽ICP备14008679号