2013-03-12 105 views
1

我編譯程序以彙編代碼的錯誤,特別是在32位的形式,並且當我編譯沒有像這樣的-m32標誌...:編譯在32位使

gcc -S examples.c 

它編譯精細。我這樣做然而,當...

gcc -S -m32 examples.c 

我在我的包括stdlib.h中得到一個錯誤(格式化取出來,因爲它沒有顯示在預覽窗口上)第一行:

In file included from /usr/include/stdlib.h:25:0, 
      from examples.c:1: 
/usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory 
compilation terminated. 

這是怎麼回事?

+0

哪個操作系統? Ubuntu的? – teppic 2013-03-12 00:28:29

+0

是的,我正在使用Ubuntu。 – SwiftCore 2013-03-12 00:30:59

+2

您可能沒有安裝'ia32-libs'。你可以運行'sudo apt-get install ia32-libs'嗎?順便說一句'predefs.h'文件來自'libc6-dev'。確保包裝已安裝。 – Tuxdude 2013-03-12 00:31:52

回答

3

您錯過了32位C庫和標頭。這些在默認情況下並未安裝在64位Ubuntu中,但您可以通過運行(與C++一起)運行:

$ sudo apt-get install g++-multilib 
+0

這項工作適用於GCC嗎? – SwiftCore 2013-03-12 00:37:52

+0

@SwiftCore:是的 – teppic 2013-03-12 00:39:25