【发布时间】:2015-10-09 12:18:59
【问题描述】:
在我的虚拟机中,我安装了 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: 跳过不兼容的 /usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.so 搜索时 -lstdc++ /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: 跳过不兼容的 /usr/lib64/gcc/x86_64-suse-linux/4.8/libstdc++.a 搜索 -lstdc++ 时 /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: 找不到 -lstdc++ collect2:错误:ld 返回 1 个退出状态
要构建 32 位,我已经安装了 32 位所需的 rpm。
在运行中 g++ -print-search-dirs ,输出为
安装:/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/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/ 图书馆: =/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 位 或者我必须安装任何其他软件包?
【问题讨论】:
-
cannot find -lstdc++说它找不到 32 位 c++ 库。仔细检查你是否安装了所有必要的库。 -
例如,在 13.1 上您需要:
gcc-32bit-4.8-2.1.2.x86_64gcc48-32bit-4.8.1_20130909-3.2.1.x86_64和libgcc_s1-32bit-4.8.1_20130909-3.2.1.x86_64