我最近设法在一个大型 cmake 项目中使用 lld 链接器。 (LLVM 11,来自此包) 我不使用 clang,我使用 G++ 和 LLD。
但是我遇到了以下问题:
lld: error: unknown argument: -rpath
按照 clang 文档,-rpath 应该可以工作,至少对于 clang 我猜是这样?
这是cmake生成的g++命令:
g++.exe [...] -fuse-ld=lld [...] -Wl,-rpath='$ORIGIN' [...]
我手动尝试了很多组合:
-Wl,-rpath='$ORIGIN'
-Wl,-rpath,'$ORIGIN'
-Wl,-rpath '$ORIGIN'
...等等,没有任何作用。
据我了解, lld 的行为应该与 ld 完全相同?,所以 -Wl,-rpath='$ORIGIN' 应该有效? 我错过了什么吗?
CMake 为我输出以下内容(在 MacOS 14.5 上使用 Clang):
-Wl,-rpath,"\$ORIGIN/"