我正在使用 clang 在 64 位 ubuntu 22.04 上编译 32 位程序。链接器失败并显示/usr/bin/ld: cannot find -lstdc++: No such file or directory
.
没有文件/没有符号链接/usr/lib32/libstdc++.so
(请参阅下面的搜索路径)。
如果我像这样手动创建链接sudo ln -s /usr/lib32/libstdc++.so.6 /usr/lib32/libstdc++.so
,它就会成功编译。
现在我想知道是否有任何包提供符号链接或者我需要其他参数吗?
感谢您的帮助。
这是详细的 clang 输出:
/usr/bin/clang -o test test.pic.o stub.pic.o libutest.a libmain.a \
-lm -lstdc++ \
--target=i386-linux-gnu \
-v
Ubuntu clang version 14.0.0-1ubuntu1.1
Target: i386-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/9
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/11
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: 32;@m32
"/usr/bin/ld" -pie -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o test /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../lib32/Scrt1.o /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../lib32/crti.o /usr/bin/../lib/gc
c/x86_64-linux-gnu/11/32/crtbeginS.o -L/usr/bin/../lib/gcc/x86_64-linux-gnu/11/32 -L/usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../lib32 -L/lib/../lib32 -L/usr/l
ib/../lib32 -L/usr/lib/llvm-14/bin/../lib -L/lib -L/usr/lib --whole-archive /usr/lib/llvm-14/lib/clang/14.0.0/lib/linux/libclang_rt.asan_static-i386.a --no-whole-arch
ive --whole-archive /usr/lib/llvm-14/lib/clang/14.0.0/lib/linux/libclang_rt.asan-i386.a --no-whole-archive --export-dynamic test.pic.o stub.pic.o libutest.a libmain.a -lm -lstdc++ --no-as-needed -lpthread -lrt -lm -ldl -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/bin/../lib
/gcc/x86_64-linux-gnu/11/32/crtendS.o /usr/bin/../lib/gcc/x86_64-linux-gnu/11/../../../../lib32/crtn.o
/usr/bin/ld: cannot find -lstdc++: No such file or directory
标准化搜索路径:
/lib
/lib32
/usr/lib
/usr/lib/gcc/x86_64-linux-gnu/11/32
/usr/lib/llvm-14/lib
/usr/lib32