今天在orin nano上希望g++使用lld代替ld时候,在如下命令时候抛出了如标题的错误
>> g++ -fuse-ld=lld a.cc
collect2: fatal error: cannot find 'ld'
compilation terminated.
因为最开始配置llvm-15环境时候我有将lld-15软连接为lld,所以使用lld是可以正确执行的,但是看起来g++并不会直接使用lld命令,为此我查看了下ld命令的路径
>> whereis ld
ld: /usr/bin/ld.bfd /usr/bin/ld.gold /usr/bin/ld.lld-15 /usr/bin/ld64.lld-15 /usr/bin/ld
其中的ld.lld-15
引起了我的注意,看起来对于fuse-ld=<arg>
命令可能底层调用的是ld.<arg>
,为此我建立了ld.lld-15
到ld.lld
的软连接
>> cd /usr/bin/
>> sudo ln -s ld.lld-15 ld.lld
看起来这个错误就解决了
- collect2 collect cannot fatal errorcollect2 collect cannot fatal error collect2 returned collect collect2 undefined reference collect2 returned directory fatal error file fatal error pcre2 found directory fatal error zlib connection internal fatal error directory fatal error bzlib directory osmesa fatal error