2015-06-30 166 views
1

我試圖在64位Kali Linux操作系統上編譯32位程序。在64位Linux上編譯32位應用程序

這裏是我的系統信息:

[email protected]:~/Desktop# cat /proc/version 
Linux version 3.18.0-kali3-amd64 ([email protected]) (gcc version 4.7.2 (Debian 4.7.2-5)) #1 SMP Debian 3.18.6-1~kali2 (2015-03-02) 

當我嘗試編譯我C項目,它不能找到-lgcc

[email protected]:~/Desktop/Project# make 
cc -o libor libor.c -fno-stack-protector -z execstack -m32 -lpthread 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc.a when searching for -lgcc 
/usr/bin/ld: cannot find -lgcc 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.7/libgcc_s.so when searching for -lgcc_s 
/usr/bin/ld: cannot find -lgcc_s 
collect2: error: ld returned 1 exit status 
make: *** [all] Error 1 

請注意,我用-m32標誌強制編譯爲32位。

像別處所建議的,32個庫應安裝的我沒有使用下面的命令:

sudo apt-get install libc6-dev-i386 

然而,這不僅改變了錯誤消息發送到所述一個上方觀察。我失去了前一個,但我想這不再重要。

請注意,現有的答案沒有幫助我,所以這不是重複。

+0

你有沒有試過'sudo apt-get install ia32-libs'? –

+0

@EugeniuRosca: 'E:包'ia32-libs'沒有安裝應用程序' 我收到很多消息 – BullyWiiPlaza

+0

export CFLAGS = -m32? – resultsway

回答

0
apt-get install gcc-multilib 

應該這樣做。

相關問題