[英]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.