Программы на C++. Форум разработчиков
Anonymous
Компоновщик не может найти библиотеку, хотя библиотека находится в пути поиска
Сообщение
Anonymous » 04 июл 2024, 00:06
Я использую команду ниже для кросс-компиляции aarch64 на платформе linux-x86_64, но компоновщик не может найти libstdc++, хотя /usr/aarch64-linux-gnu/lib/libstdc++.so.6 действительно существует, может кто-нибудь знает, почему ? большое спасибо
Код: Выделить всё
clear && /usr/bin/clang++ -v --target=aarch64-linux-gnu \
--sysroot=/usr/aarch64-linux-gnu \
-I/usr/aarch64-linux-gnu/include \
-I/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include \
-I/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/aarch64-unknown-linux-gnu/c++/v1 \
-I/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/c++/v1 \
-B/usr/aarch64-linux-gnu/bin \
-L/usr/aarch64-linux-gnu/lib \
main.cc
вывод звука
Код: Выделить всё
Ubuntu clang version 14.0.0-1ubuntu1.1
Target: aarch64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/11
Found candidate GCC installation: /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12
Selected GCC installation: /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12
Candidate multilib: .;@m64
Selected multilib: .;@m64
"/usr/lib/llvm-14/bin/clang" -cc1 -triple aarch64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name main.cc -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu generic -target-feature +neon -target-feature +v8a -target-abi aapcs -fallow-half-arguments-and-returns -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/root/src/software -resource-dir /usr/lib/llvm-14/lib/clang/14.0.0 -I /usr/aarch64-linux-gnu/include -I /root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include -I /root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/aarch64-unknown-linux-gnu/c++/v1 -I /root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/c++/v1 -isysroot /usr/aarch64-linux-gnu -internal-isystem /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++ -internal-isystem /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++/aarch64-linux-gnu -internal-isystem /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++/backward -internal-isystem /usr/lib/llvm-14/lib/clang/14.0.0/include -internal-isystem /usr/aarch64-linux-gnu/usr/local/include -internal-isystem /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include -internal-externc-isystem /usr/aarch64-linux-gnu/include -internal-externc-isystem /usr/aarch64-linux-gnu/usr/include -fdeprecated-macro -fdebug-compilation-dir=/root/src/software -ferror-limit 19 -fno-signed-char -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -target-feature +outline-atomics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/main-886dff.o -x c++ main.cc
clang -cc1 version 14.0.0 based upon LLVM 14.0.0 default target x86_64-pc-linux-gnu
ignoring nonexistent directory "/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/aarch64-unknown-linux-gnu/c++/v1"
ignoring nonexistent directory "/usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++/aarch64-linux-gnu"
ignoring nonexistent directory "/usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++/backward"
ignoring nonexistent directory "/usr/aarch64-linux-gnu/usr/local/include"
ignoring nonexistent directory "/usr/aarch64-linux-gnu/usr/include"
ignoring duplicate directory "/usr/aarch64-linux-gnu/include"
as it is a non-system directory that duplicates a system directory
ignoring duplicate directory "/usr/aarch64-linux-gnu/include"
#include "..." search starts here:
#include search starts here:
/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include
/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/c++/v1
/usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++
/usr/lib/llvm-14/lib/clang/14.0.0/include
/usr/aarch64-linux-gnu/include
End of search list.
"/usr/aarch64-linux-gnu/bin/ld" --sysroot=/usr/aarch64-linux-gnu -pie -EL -z relro --hash-style=gnu --build-id --eh-frame-hdr -m aarch64linux -dynamic-linker /lib/ld-linux-aarch64.so.1 -o a.out /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/lib/Scrt1.o /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/lib/crti.o /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/crtbeginS.o -L/usr/aarch64-linux-gnu/lib -L/usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12 -L/usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/lib -L/usr/aarch64-linux-gnu/lib /tmp/main-886dff.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/crtendS.o /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/lib/crtn.o
/usr/aarch64-linux-gnu/bin/ld: cannot find -lstdc++: No such file or directory
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Подробнее здесь:
https://stackoverflow.com/questions/787 ... earch-path
1720040796
Anonymous
Я использую команду ниже для кросс-компиляции aarch64 на платформе linux-x86_64, но компоновщик не может найти libstdc++, хотя /usr/aarch64-linux-gnu/lib/libstdc++.so.6 действительно существует, может кто-нибудь знает, почему ? большое спасибо [code]clear && /usr/bin/clang++ -v --target=aarch64-linux-gnu \ --sysroot=/usr/aarch64-linux-gnu \ -I/usr/aarch64-linux-gnu/include \ -I/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include \ -I/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/aarch64-unknown-linux-gnu/c++/v1 \ -I/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/c++/v1 \ -B/usr/aarch64-linux-gnu/bin \ -L/usr/aarch64-linux-gnu/lib \ main.cc [/code] вывод звука [code]Ubuntu clang version 14.0.0-1ubuntu1.1 Target: aarch64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/bin Found candidate GCC installation: /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/11 Found candidate GCC installation: /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12 Selected GCC installation: /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12 Candidate multilib: .;@m64 Selected multilib: .;@m64 "/usr/lib/llvm-14/bin/clang" -cc1 -triple aarch64-unknown-linux-gnu -emit-obj -mrelax-all --mrelax-relocations -disable-free -clear-ast-before-backend -disable-llvm-verifier -discard-value-names -main-file-name main.cc -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=non-leaf -fmath-errno -ffp-contract=on -fno-rounding-math -mconstructor-aliases -funwind-tables=2 -target-cpu generic -target-feature +neon -target-feature +v8a -target-abi aapcs -fallow-half-arguments-and-returns -mllvm -treat-scalable-fixed-error-as-warning -debugger-tuning=gdb -v -fcoverage-compilation-dir=/root/src/software -resource-dir /usr/lib/llvm-14/lib/clang/14.0.0 -I /usr/aarch64-linux-gnu/include -I /root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include -I /root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/aarch64-unknown-linux-gnu/c++/v1 -I /root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/c++/v1 -isysroot /usr/aarch64-linux-gnu -internal-isystem /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++ -internal-isystem /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++/aarch64-linux-gnu -internal-isystem /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++/backward -internal-isystem /usr/lib/llvm-14/lib/clang/14.0.0/include -internal-isystem /usr/aarch64-linux-gnu/usr/local/include -internal-isystem /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/include -internal-externc-isystem /usr/aarch64-linux-gnu/include -internal-externc-isystem /usr/aarch64-linux-gnu/usr/include -fdeprecated-macro -fdebug-compilation-dir=/root/src/software -ferror-limit 19 -fno-signed-char -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -target-feature +outline-atomics -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/main-886dff.o -x c++ main.cc clang -cc1 version 14.0.0 based upon LLVM 14.0.0 default target x86_64-pc-linux-gnu ignoring nonexistent directory "/root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/aarch64-unknown-linux-gnu/c++/v1" ignoring nonexistent directory "/usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++/aarch64-linux-gnu" ignoring nonexistent directory "/usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++/backward" ignoring nonexistent directory "/usr/aarch64-linux-gnu/usr/local/include" ignoring nonexistent directory "/usr/aarch64-linux-gnu/usr/include" ignoring duplicate directory "/usr/aarch64-linux-gnu/include" as it is a non-system directory that duplicates a system directory ignoring duplicate directory "/usr/aarch64-linux-gnu/include" #include "..." search starts here: #include search starts here: /root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include /root/src/software/clang+llvm-14.0.0-aarch64-linux-gnu/include/c++/v1 /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../include/c++ /usr/lib/llvm-14/lib/clang/14.0.0/include /usr/aarch64-linux-gnu/include End of search list. "/usr/aarch64-linux-gnu/bin/ld" --sysroot=/usr/aarch64-linux-gnu -pie -EL -z relro --hash-style=gnu --build-id --eh-frame-hdr -m aarch64linux -dynamic-linker /lib/ld-linux-aarch64.so.1 -o a.out /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/lib/Scrt1.o /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/lib/crti.o /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/crtbeginS.o -L/usr/aarch64-linux-gnu/lib -L/usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12 -L/usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/lib -L/usr/aarch64-linux-gnu/lib /tmp/main-886dff.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/crtendS.o /usr/bin/../lib/gcc-cross/aarch64-linux-gnu/12/../../../../aarch64-linux-gnu/lib/crtn.o /usr/aarch64-linux-gnu/bin/ld: cannot find -lstdc++: No such file or directory clang: error: linker command failed with exit code 1 (use -v to see invocation) [/code] [img]https://i.sstatic.net/mLWLnnKD.png[/img] Подробнее здесь: [url]https://stackoverflow.com/questions/78704147/linker-cannot-find-library-even-though-library-in-search-path[/url]