在我的虚拟机中,我安装了 open suse linux 64 位。 尝试构建 32 位 exe。
但是在运行命令时: g++ prg1.cpp -o prg1 -m32
我收到以下错误:
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.so when searching for -lstdc++ /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.a when searching for -lstdc++ /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lstdc++ collect2: error: ld returned 1 exit status
为了构建 32 位,我已经安装了 32 位所需的 rpm。
运行时 g++ -print-search-dirs ,输出为
install: /usr/lib64/gcc/x86_64-suse-linux/4.8/ programs: =/usr/lib64/gcc/x86_64-suse-linux/4.8/:/usr/lib64/gcc/x86_64-suse-linux/4.8/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/4.8/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/x86_64-suse-linux/4.8/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ libraries: =/usr/lib64/gcc/x86_64-suse-linux/4.8/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/lib/x86_64-suse-linux/4.8/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/lib/../lib64/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../x86_64-suse-linux/4.8/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/:/lib/x86_64-suse-linux/4.8/:/lib/../lib64/:/usr/lib/x86_64-suse-linux/4.8/:/usr/lib/../lib64/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/lib/:/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../:/lib/:/usr/lib/
虽然也安装了 32 位 libstdc++,但链接器无法链接到它。是否需要任何特定标志来告诉链接器构建 32 位 或者我必须安装任何其他软件包?
最佳答案
To build for 32 i have installed the necessary rpms for 32 bit.
不,你没有。
请注意,为了构建程序,您需要 32 位运行时和开发库。我猜您已经安装了前者,但没有安装后者。
关于c++ - 在 64 位 open suse linux 上构建 32 exe 出现链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33038125/