«clang -fuse-ld=/usr/local/bin/ld.lld» отличается от прямого вызова «/usr/local/bin/ld.lld»

#clang

Вопрос:

Я использую Ubuntu 20.04 на WSL 2, установлены clang 13 и GCC 10. Когда я запускаю команду, она отображается, как показано ниже:

 simon@LAPTOP-JH2M71LG:~/musl-1.2.2$ clang -fuse-ld=/usr/local/bin/ld.lld -v -nostdlib -shared -Wl,-e,_dlstart -o lib/libc.so obj/src/aio/aio.lo clang version 13.0.0 Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/local/bin Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/9 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Candidate multilib: x32;@mx32 Selected multilib: .;@m64  "/usr/local/bin/ld.lld" -z relro --hash-style=gnu --eh-frame-hdr -m elf_x86_64 -shared -o lib/libc.so -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib64 -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib64 -L/usr/local/bin/../lib -L/lib -L/usr/lib -e _dlstart obj/src/aio/aio.lo ld.lld: error: obj/src/aio/aio.lo is incompatible with elf_x86_64 clang-13: error: linker command failed with exit code 1 (use -v to see invocation)  

Но когда я запускаю команду, как показано ниже, она работает хорошо:

 simon@LAPTOP-JH2M71LG:~/musl-1.2.2$ /usr/local/bin/ld.lld -v -nostdlib -shared -e _dlstart -o lib/libc.so obj/src/aio/aio.lo LLD 13.0.0 (compatible with GNU linkers)  

Я когда-то предполагал, что clang -fuse-ld=/usr/local/bin/ld.lld это просто вызовет ld.lld, но, похоже, это не так. Это показывает, что он выберет gcc. На самом деле я просто хочу clang -fuse-ld=/usr/local/bin/ld.lld , чтобы вы могли работать как /usr/local/bin/ld.lld

Спасибо, Саймон