64位linux系統編譯32位匯程式設計序的時候需要**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 i386
sudo apt -get update
sudo apt-get dist-upgrade
如此這般你就擁有了64位系統對32位程式的支援
其次是安裝gcc multilab
apt-get install gcc-multilib g++-multilib
64位系統編譯32位程式
如上使用c4這個小工具時遇到來需要 32位系統的需求,發現使用 m32引數後,編譯提示錯誤,如下 usr bin ld 未知的 模式 32 支援的 elf x86 64 elf32 x86 64 elf i386 i386linux elf l1om elf k1om i386pep i386pe ...
64位系統編譯TinyHelloWorld c
程式設計師的自我修養中,有一段是通過內嵌彙編來完成乙個helloworld程式,這段彙編是32位的,在64位的機器上直接編譯就會出問題。源 tinyhelloworld.c char str hello world n void print void exit void nomain 編譯過程gcc...
如何在64位Linux系統上編譯32位程式
在64位的ubuntu,gcc8.2.0的系統上,如何編譯乙個32的程式?查詢gcc文件可知,編譯64位程式使用 m64選項,例如 gcc m64 o3 index.c o index 該程式只能在64位機器上執行編譯32位程式使用 m32選項,例如 gcc m32 o3 index.c o ind...