1. 程式人生 > >64位ubuntu編譯32位程式

64位ubuntu編譯32位程式

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