簡體   English   中英

在64位平台上使用ld生成32位可執行文件

[英]Use ld on 64-bit platform to generate 32-bit executable

我編寫了一個程序集,該程序集與:

$as --32 -o hello.o hello.s

然后,我嘗試生成具有以下內容的可執行文件:

$ld -o hello hello.o

它給我一個錯誤:

ld: i386 architecture of input file `ConditionalBranching.o' is incompatible with i386:x86-64 output

我嘗試使用標志-m32或--32,但ld不要使用它們。 我無法通過閱讀ld的手冊頁找到解決方案。 如何從32位共享庫生成32位二進制文​​件?

您的鏈接器正在嘗試創建64位二進制文​​件,但是您的匯編代碼已針對32位體系結構進行了匯編。 這會造成不匹配。

通過將-m elf_i386標志傳遞給鏈接器,明確指示其創建32位二進制文​​件,可以解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM