2016-12-08 85 views

回答

1

我的機器是ELF 64位LSB在默認情況下,如果ü編譯它會產生你64位可執行

gcc hello.c -o hello 

使用文件檢查它

hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=9f8fa8ac13fc03672306da1d5d4ee6671114eb11, not stripped 

使用標誌-m32那麼你強迫你的編譯器爲32位

gcc -m32 hello.c -o hello 

file hello 
hello : ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=c72216023939b2832467c624850f164d1857e645, not stripped 

如果您尋找交叉編譯這可能幫助üHow to determine host value for configure when using cross compiler

1

您需要讓GCC使用-m32標誌。

你可以嘗試編寫一個簡單的shell腳本到你的$ PATH並調用它gcc(確保你不覆蓋原始的gcc,並確保新腳本在$ PATH中提前發佈,並且它使用完整。路徑GCC

編譯的二進制像 - :

/bin/gcc -m32 "source file" 
+0

你介意以一種清楚的方式解釋它 – Nazeem

+0

@Nazeem我認爲你在問shell腳本行,這裏我的意思是如果你有gcc編譯器的32位t如果你可以用像交叉編譯器那樣編譯你的程序。希望你明白我的觀點。 –

+0

https://gcc.gnu.org/ml/gcc-help/2010-09/msg00040.html此鏈接可以幫助你。 –

相關問題