2010/09/15

64 位元 gcc 編譯 32 位元 C 程式

  在 Ubuntu 10.10 AMD64 位元版上預設的 gcc 要編譯 C 程式成 32 位元執行檔, 加了 -m32 參數卻出現以下錯誤訊息:

krogh@krogh-desktop:~$ gcc -m32 test1.c
In file included from //usr/include/features.h:387,
from //usr/include/stdio.h:28,
from test1.c:1:
//usr/include/gnu/stubs.h:7: fatal error: gnu/stubs-32.h: 沒有此一檔案或目錄
compilation terminated.

真的令人摸不著頭緒的錯誤訊息! 用 Google 找了一下原來是少了 32 位元 library. 將 libc6-dev-i386 安裝起來就可以成功執行編譯.