64位系統編譯32位程式

2021-06-29 10:12:35 字數 741 閱讀 8834

如上使用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 i386

sudo apt -get update

sudo apt-get dist-upgrade

如此這般你就擁有了64位系統對32位的支援

其次是安裝gcc multilab

apt-get install

gcc-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...