如上使用c4這個小工具時遇到來需要**32位系統的需求,發現使用-m32引數後,編譯提示錯誤,如下:
/usr/bin/ld: 未知的**模式: 32支援的**: elf_x86_64 elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om i386pep i386pe
collect2: error:
ld returned 1 exit status
首先要開啟64位系統對32位的支援
第一步:確認64為架構的核心
dpkg --print-architecture輸出:adm64
說明已擁有64位架構核心。
第二步:確認開啟了多架構支援功能
dpkg --print-foreign-architectures輸出:i386
說明已開啟,如果沒有需要手動開啟
開啟多架構支援
sudo dpkg --add-architecture i386sudo apt -get update
sudo apt-get dist-upgrade
如此這般你就擁有了64位系統對32位的支援
其次是安裝gcc multilab
apt-get installgcc-multilib g++-multilib
64位Linux系統編譯32位匯程式設計序
64位linux系統編譯32位匯程式設計序的時候需要 32位系統的需求,發現使用 m32引數後,編譯提示錯誤,如下 usr bin ld 未知的 模式 32 支援的 elf x86 64 elf32 x86 64 elf i386 i386linux elf l1om elf k1om i386pe...
64位系統編譯TinyHelloWorld c
程式設計師的自我修養中,有一段是通過內嵌彙編來完成乙個helloworld程式,這段彙編是32位的,在64位的機器上直接編譯就會出問題。源 tinyhelloworld.c char str hello world n void print void exit void nomain 編譯過程gcc...
64位Ubuntu上編譯32位程式
1.確認主機為64位架構的核心,應該輸出為adm64,執行 dpkg print architecture 2.確認開啟了多支架功能,應該輸出為i386,執行 dpkg print foreign architectures 如果沒有,則需要手動開啟,依次執行 sudo dpkg add archi...