64位Linux系統編譯32位匯程式設計序

2021-07-03 21:57:24 字數 792 閱讀 5182

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