2014-10-19 102 views
2

所以我已經安裝了devtools,但我猜測我的libstdC++庫不是正確的版本或不是32位?嘗試編譯時出現此錯誤。我該如何解決?試圖編譯在CentOS上的32位應用程序導致錯誤

/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 
+1

'x86_64的,紅帽,linux'它就在那裏,你只安裝了64個庫它不能使用它們。 – sjdowling 2014-10-19 13:09:01

+1

有什麼辦法可以安裝32位庫嗎? – Zinglish 2014-10-19 13:30:28

回答

1

我有一個類似的問題,已經厭倦了devtoolset 1,1.1和2,所有的結果都一樣。展望這進一步我在目錄中看到:

/opt/centos/devtoolset-1.0/root/usr/lib/gcc/x86_64-CentOS-linux/4.7.0 

有一個「32」目錄,並在這裏有一些庫文件和鏈接到另一個目錄指示「I386」:

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 

yum install devtoolset-2 

X64的CentOS的機器上:用yum使用如下命令「I386」目錄未安裝。

正如上面的Zinglish所問,32位庫如何在yum上安裝在64位操作系統上?我使用http://people.centos.org/tru/devtools-2作爲RPM來源。

+2

不知道這是否是最好的答案,但它對我有用。我下載並安裝了(rpm -ivh)devtoolset-2-libquadmath-devel-4.8.2-15.el5.i386.rpm devtoolset-2-libstdC++ - devel-4.8.2-15.el5.i386.rpm手動將32位的庫放在正確的位置,以便現在可以使用devtools編譯x64和x86。 – AlexO 2014-11-21 11:36:43

1

與64位CentOS 6和devtoolset 1.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​​位庫:

百勝安裝devtoolset-1.1 * i686的

但不知何故,它們被安裝在/ opt/RH /devtoolset-1.1/。根/ usr/lib中/ GCC/i686的-紅帽-LINUX/4.7.2 /人工手動符號鏈接的目錄所需的地方:

LN -s /opt/rh/devtoolset-1.1/root/u sr/lib/gcc/i686-redhat-linux /opt/rh/devtoolset-1.1/root/usr/lib/gcc/。

並最終成功編譯32位應用程序。

0

我以前有類似的問題,我想一個原因,並找到了解決方案。

情況:

(centos6 x64 g++) 

問題:當我試圖編譯的.cpp與Makefile文件的.h我得到了下面的錯誤..

skipping incompatible .../libstdc++.so 

原因:

> tried to compile 32bit at 64bit linux machine(centos). However there 
> was no appropriate g++ library. 

解決方案:安裝的libstdC++

yum list *stdc* 
yum install libstdc++-devel.i686 
+0

您正在討論centos6的標準gcc安裝。 OP正在討論使用devtoolset提供的不同編譯器。 – Lieuwe 2017-09-07 15:14:16

相關問題