无法使用64位g++编译32位代码

20

我正在使用CodeBlocks,运行在Ubuntu上。这是编译的输出结果。

g++ -Wall  -O2  -m32 -nostdlib    -Iinclude  -c /home/miroslav/Development/WEBGINE/src/WEBGINE/Component.cpp -o obj/ReleaseCGI32/src/WEBGINE/Component.o
g++ -Wall  -O2  -m32 -nostdlib    -Iinclude  -c /home/miroslav/Development/WEBGINE/src/WEBGINE/Debug/ComData.cpp -o obj/ReleaseCGI32/src/WEBGINE/Debug/ComData.o
g++ -Wall  -O2  -m32 -nostdlib    -Iinclude  -c /home/miroslav/Development/WEBGINE/src/WEBGINE/Debug/DebugCom.cpp -o obj/ReleaseCGI32/src/WEBGINE/Debug/DebugCom.o
g++ -Wall  -O2  -m32 -nostdlib    -Iinclude  -c /home/miroslav/Development/WEBGINE/src/WEBGINE/Error/ErrorCom.cpp -o obj/ReleaseCGI32/src/WEBGINE/Error/ErrorCom.o
g++ -Wall  -O2  -m32 -nostdlib    -Iinclude  -c /home/miroslav/Development/WEBGINE/src/WEBGINE/Request.cpp -o obj/ReleaseCGI32/src/WEBGINE/Request.o
g++ -Wall  -O2  -m32 -nostdlib    -Iinclude  -c /home/miroslav/Development/WEBGINE/src/WEBGINE/Site.cpp -o obj/ReleaseCGI32/src/WEBGINE/Site.o
g++ -Wall  -O2  -m32 -nostdlib    -Iinclude  -c /home/miroslav/Development/WEBGINE/src/WEBGINE/WEBGINE.cpp -o obj/ReleaseCGI32/src/WEBGINE/WEBGINE.o
g++ -Wall  -O2  -m32 -nostdlib    -Iinclude  -c /home/miroslav/Development/WEBGINE/src/main.cpp -o obj/ReleaseCGI32/src/main.o
g++  -o /home/miroslav/htdocs/freelife/index32.cgi obj/ReleaseCGI32/src/WEBGINE/Component.o obj/ReleaseCGI32/src/WEBGINE/Debug/ComData.o obj/ReleaseCGI32/src/WEBGINE/Debug/DebugCom.o obj/ReleaseCGI32/src/WEBGINE/Error/ErrorCom.o obj/ReleaseCGI32/src/WEBGINE/Request.o obj/ReleaseCGI32/src/WEBGINE/Site.o obj/ReleaseCGI32/src/WEBGINE/WEBGINE.o obj/ReleaseCGI32/src/main.o   -s -m32 -L/usr/lib32/  
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.3/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++

关于32位库的简要信息:

miroslav@miroslav-desktop:/usr/lib32$ ls -la libst*
lrwxrwxrwx 1 root root     19 2010-06-21 20:50 libstdc++.so.6 -> libstdc++.so.6.0.13
-rw-r--r-- 1 root root 975088 2010-03-27 01:16 libstdc++.so.6.0.13
1个回答

35

请务必安装gcc-multilibg++-multilib。这些依赖于64位和32位gcc和stdc++库。


谢谢。我有gcc-multilib,但我还没有检查g++-multilib :D - kravemir
检查 gcc -v 以选择正确的版本,例如 gcc-4.4-multilib - ezdazuzena
4
这些如何安装在CentOS机器上? - Christopher Bales
@ChristopherBales 你安装好了吗?我也在尝试在CentOS上安装它们。 - Amit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接