c++ - 在 64 位 open suse linux 上构建 32 exe 出现链接错误

标签 c++ linux gcc linker

在我的虚拟机中,我安装了 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/

相关文章:

c++ - 函数模板特化语法

c++ - 枚举类型的 Notype 模板的特化 - 错误 : template argument is invalid

regex - 使用 grep regex 选择第一个连字符

c - 使用 cygwin gcc 时出现 typedef 定义错误

c++ - 每第 n 次迭代将输出写入新文件

c++ - 当进程在 linux 下结束时如何得到通知?

linux - grep 双引号内的字符串

linux - 使用 PolarSSL 交叉编译 OpenVPN?

c - 使用 GCC 驱动程序时,什么使静态库成为 "incompatible"?

c++ - 在 header 内限定 using 声明的范围