ld.exe: 找不到 -llog -lgcc -lc
ld.exe: cannot find -llog -lgcc -lc
我正在尝试在 x86_64-pc-windows-msvc 主机上编译 x86_64-linux-android 目标。这是我的 .cargo/config:
[target.x86_64-linux-android]
ar = "C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ar"
linker = "C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld"
当我使用 cargo build --target=x86_64-linux-android --target-dir=./out
(cdylib 类型)编译我的项目时,出现此错误:
note: C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -ldl
C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -llog
C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -lgcc
C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -lc
C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -lm
在目录工具链的 bin 目录中,我看到了这些可能的文件:
03/31/2015 04:13 AM 973,312 x86_64-linux-android-addr2line.exe
03/31/2015 04:13 AM 998,400 x86_64-linux-android-ar.exe
03/31/2015 04:13 AM 1,745,408 x86_64-linux-android-as.exe
03/31/2015 04:13 AM 902,656 x86_64-linux-android-c++.exe
03/31/2015 04:13 AM 971,264 x86_64-linux-android-c++filt.exe
03/31/2015 04:13 AM 901,632 x86_64-linux-android-cpp.exe
03/31/2015 04:13 AM 2,917,376 x86_64-linux-android-dwp.exe
03/31/2015 04:13 AM 63,488 x86_64-linux-android-elfedit.exe
03/31/2015 04:13 AM 902,656 x86_64-linux-android-g++.exe
03/31/2015 04:13 AM 899,584 x86_64-linux-android-gcc-4.9.exe
03/31/2015 04:13 AM 59,904 x86_64-linux-android-gcc-ar.exe
03/31/2015 04:13 AM 59,392 x86_64-linux-android-gcc-nm.exe
03/31/2015 04:13 AM 59,392 x86_64-linux-android-gcc-ranlib.exe
03/31/2015 04:13 AM 899,584 x86_64-linux-android-gcc.exe
03/31/2015 04:13 AM 558,080 x86_64-linux-android-gcov-tool.exe
03/31/2015 04:13 AM 529,408 x86_64-linux-android-gcov.exe
03/31/2015 04:13 AM 5,268,992 x86_64-linux-android-gdb-orig.exe
03/31/2015 04:13 AM 42,496 x86_64-linux-android-gdb.exe
03/31/2015 04:13 AM 1,039,872 x86_64-linux-android-gprof.exe
03/31/2015 04:13 AM 1,793,024 x86_64-linux-android-ld.bfd.exe
03/31/2015 04:13 AM 4,641,792 x86_64-linux-android-ld.exe
03/31/2015 04:13 AM 4,641,792 x86_64-linux-android-ld.gold.exe
12/30/2014 03:14 AM 2,127,360 x86_64-linux-android-ld.mcld.exe
03/31/2015 04:13 AM 983,040 x86_64-linux-android-nm.exe
03/31/2015 04:13 AM 1,140,736 x86_64-linux-android-objcopy.exe
03/31/2015 04:13 AM 2,069,504 x86_64-linux-android-objdump.exe
03/31/2015 04:13 AM 998,400 x86_64-linux-android-ranlib.exe
03/31/2015 04:13 AM 497,152 x86_64-linux-android-readelf.exe
03/31/2015 04:13 AM 973,824 x86_64-linux-android-size.exe
03/31/2015 04:13 AM 973,824 x86_64-linux-android-strings.exe
03/31/2015 04:13 AM 1,140,736 x86_64-linux-android-strip.exe
在一个类似的Whosebug post(参见:)中,使用的链接器是clang,但我好像找不到。我不确定在这种情况下我是否传递了“链接器”
我不得不更改 ndk 版本,并使用 llvm 工具链中的编译版本:
[target.x86_64-linux-android]
ar = "C:/android-ndk-r21d/toolchains/llvm/prebuilt/windows-x86_64/bin/x86_64-linux-android-ar"
linker = "C:/android-ndk-r21d/toolchains/llvm/prebuilt/windows-x86_64/bin/x86_64-linux-android29-clang.cmd"
特别注意,如上述线程中所见,要使用批处理文件。
我正在尝试在 x86_64-pc-windows-msvc 主机上编译 x86_64-linux-android 目标。这是我的 .cargo/config:
[target.x86_64-linux-android]
ar = "C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ar"
linker = "C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld"
当我使用 cargo build --target=x86_64-linux-android --target-dir=./out
(cdylib 类型)编译我的项目时,出现此错误:
note: C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -ldl
C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -llog
C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -lgcc
C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -lc
C:/android-ndk-r10e/toolchains/x86_64-4.9/prebuilt/windows-x86_64/bin/x86_64-linux-android-ld.exe: error: cannot find -lm
在目录工具链的 bin 目录中,我看到了这些可能的文件:
03/31/2015 04:13 AM 973,312 x86_64-linux-android-addr2line.exe
03/31/2015 04:13 AM 998,400 x86_64-linux-android-ar.exe
03/31/2015 04:13 AM 1,745,408 x86_64-linux-android-as.exe
03/31/2015 04:13 AM 902,656 x86_64-linux-android-c++.exe
03/31/2015 04:13 AM 971,264 x86_64-linux-android-c++filt.exe
03/31/2015 04:13 AM 901,632 x86_64-linux-android-cpp.exe
03/31/2015 04:13 AM 2,917,376 x86_64-linux-android-dwp.exe
03/31/2015 04:13 AM 63,488 x86_64-linux-android-elfedit.exe
03/31/2015 04:13 AM 902,656 x86_64-linux-android-g++.exe
03/31/2015 04:13 AM 899,584 x86_64-linux-android-gcc-4.9.exe
03/31/2015 04:13 AM 59,904 x86_64-linux-android-gcc-ar.exe
03/31/2015 04:13 AM 59,392 x86_64-linux-android-gcc-nm.exe
03/31/2015 04:13 AM 59,392 x86_64-linux-android-gcc-ranlib.exe
03/31/2015 04:13 AM 899,584 x86_64-linux-android-gcc.exe
03/31/2015 04:13 AM 558,080 x86_64-linux-android-gcov-tool.exe
03/31/2015 04:13 AM 529,408 x86_64-linux-android-gcov.exe
03/31/2015 04:13 AM 5,268,992 x86_64-linux-android-gdb-orig.exe
03/31/2015 04:13 AM 42,496 x86_64-linux-android-gdb.exe
03/31/2015 04:13 AM 1,039,872 x86_64-linux-android-gprof.exe
03/31/2015 04:13 AM 1,793,024 x86_64-linux-android-ld.bfd.exe
03/31/2015 04:13 AM 4,641,792 x86_64-linux-android-ld.exe
03/31/2015 04:13 AM 4,641,792 x86_64-linux-android-ld.gold.exe
12/30/2014 03:14 AM 2,127,360 x86_64-linux-android-ld.mcld.exe
03/31/2015 04:13 AM 983,040 x86_64-linux-android-nm.exe
03/31/2015 04:13 AM 1,140,736 x86_64-linux-android-objcopy.exe
03/31/2015 04:13 AM 2,069,504 x86_64-linux-android-objdump.exe
03/31/2015 04:13 AM 998,400 x86_64-linux-android-ranlib.exe
03/31/2015 04:13 AM 497,152 x86_64-linux-android-readelf.exe
03/31/2015 04:13 AM 973,824 x86_64-linux-android-size.exe
03/31/2015 04:13 AM 973,824 x86_64-linux-android-strings.exe
03/31/2015 04:13 AM 1,140,736 x86_64-linux-android-strip.exe
在一个类似的Whosebug post(参见:
我不得不更改 ndk 版本,并使用 llvm 工具链中的编译版本:
[target.x86_64-linux-android]
ar = "C:/android-ndk-r21d/toolchains/llvm/prebuilt/windows-x86_64/bin/x86_64-linux-android-ar"
linker = "C:/android-ndk-r21d/toolchains/llvm/prebuilt/windows-x86_64/bin/x86_64-linux-android29-clang.cmd"
特别注意,如上述线程中所见,要使用批处理文件。