首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在CentOS上编译32位应用程序会导致错误

问尝试在CentOS上编译32位应用程序会导致错误
EN

Stack Overflow用户
提问于 2014-10-19 21:04:17
回答 3查看 3.2K关注 0票数 3

所以我已经安装了devtools,但是我猜我的libstdc++库不是正确的版本或者不是32位的?我在尝试编译时遇到此错误。我该如何解决这个问题?

代码语言:javascript
复制
/opt/centos/devtoolset-1.1/root/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/ld: skipping incompatible /opt/centos/devtoolset-1.1/root/usr/lib/gcc/x86_64-redhat-linux/4.7.2/libstdc++_nonshared.a when searching for -lstdc++_nonshared
/opt/centos/devtoolset-1.1/root/usr/libexec/gcc/x86_64-redhat-linux/4.7.2/ld: cannot find -lstdc++_nonshared
EN

回答 3

Stack Overflow用户

发布于 2014-11-21 18:06:22

我也有类似的问题,我已经厌倦了devtoolset1、1.1和2,结果都是一样的。进一步查看,我在目录中看到:

代码语言:javascript
复制
/opt/centos/devtoolset-1.0/root/usr/lib/gcc/x86_64-CentOS-linux/4.7.0

这里有一个"32“目录,这里有一些库文件和指向另一个目录的链接,它们表示"i386":

代码语言:javascript
复制
libitm.a -> ../../../i386-CentOS-linux/4.7.0/libitm.a
libitm.so
libquadmath.a -> ../../../i386-CentOS-linux/4.7.0/libquadmath.a
libquadmath.so
libstdc++.a -> ../../../i386-CentOS-linux/4.7.0/libstdc++.a
libstdc++_nonshared.a -> ../../../i386-CentOS-linux/4.7.0/libstdc++_nonshared.a
libstdc++.so
libsupc++.a

这个"i386“目录不是使用yum安装的,而是使用如下命令安装的:

代码语言:javascript
复制
yum install devtoolset-2

在x64 CentOS计算机上。

因此,正如上面提到的Zinglish所问的那样,如何将32位库安装在64位操作系统上呢?我使用http://people.centos.org/tru/devtools-2作为RPM源代码。

票数 1
EN

Stack Overflow用户

发布于 2015-09-02 00:34:46

64位CentOS 6和devtoolset1.1也存在类似问题。

32位库似乎安装在:

/opt/centos/devtoolset-1.1/root/usr/lib/gcc/x86_64-redhat-linux/4.7.2/32

目录中的一些库被符号链接到../../../i686-redhat-linux/4.7.2/,中不存在的文件。

所以我显式地安装了devtoolset 32位库:

yum install devtoolset-1.1.*i686

但它们以某种方式安装在/opt/rh/devtoolset-1.1/root/usr/lib/gcc/i686-redhat-linux/4.7.2/中,因此手动将目录符号链接到所需的位置:

根目录/opt/rh/devtoolset-1.1/root/usr/lib/gcc/i686-redhat-linux /opt/rh/

-s -1.1/-s/usr/lib/gcc/.

最终编译成功32位app。

票数 1
EN

Stack Overflow用户

发布于 2017-08-24 10:18:36

我以前遇到过类似的问题,我想是一个原因,并找到了解决方案。

环境:

代码语言:javascript
复制
(centos6 x64 g++)

问题:当我尝试用Makefile编译.cpp和.h时,我得到了下面的错误..

代码语言:javascript
复制
skipping incompatible .../libstdc++.so 

原因:

代码语言:javascript
复制
> tried to compile 32bit at 64bit linux machine(centos). However there
> was no appropriate g++ library.

解决方案:安装libstdc++

代码语言:javascript
复制
yum list *stdc*
yum install libstdc++-devel.i686
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26450822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档