【问题标题】:building 32 exe on 64 bit open suse linux gives link error在 64 位 open suse linux 上构建 32 exe 给出链接错误
【发布时间】: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_64 gcc48-32bit-4.8.1_20130909-3.2.1.x86_64libgcc_s1-32bit-4.8.1_20130909-3.2.1.x86_64

标签: c++ linux gcc linker


【解决方案1】:

为了构建 32 位,我已经为 32 位安装了必要的 rpm。

不,你没有。

请注意,为了构建程序,您需要 32 位运行时开发库。我猜你已经安装了前者,但没有安装后者。

【讨论】:

  • 我错过了安装 - libstdc++48-devel-32bit-4.8.1_20130909-3.2.1.x86_64.rpm。现在正在建设中。谢谢。
猜你喜欢
  • 1970-01-01
  • 2016-06-01
  • 2012-11-26
  • 1970-01-01
  • 2012-09-17
  • 1970-01-01
  • 2016-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多