前言
在64位下使用gcc編譯32位程序出現報錯,一般解決方案是缺各種依賴,如果你安裝了依賴就可以了,那出門右轉谷歌或者百度即可,本文是解決安裝依賴都不能解決的情況
error
報錯代碼如下
ubuntu@ubuntu ~/code/pwn gcc -m32 test.c
/usr/bin/x86_64-linux-gnu-ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/6/libgcc.a when searching for -lgcc
/usr/bin/x86_64-linux-gnu-ld: cannot find -lgcc
/usr/bin/x86_64-linux-gnu-ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/6/libgcc.a when searching for -lgcc
/usr/bin/x86_64-linux-gnu-ld: cannot find -lgcc
collect2: error: ld returned 1 exit status
後面排查之後發現確實是因爲缺了32位的so文件,猜測是因爲在玩honggfuzz的時候手動編譯了gcc導致的問題。
solve
重新安裝即可
sudo apt auto-remove gcc
sudo apt install gcc