簡體   English   中英

64位項目中的32位.obj

[英]32-bit .obj in 64-bit project

我有一個32位目標文件o.obj並想在使用64位庫l.lib的項目中使用它。

為了使.lib滿意,需要將Visual Studio配置設置為x64。 但是,鏈接器然后拋出error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'

我經歷了Visual Studio的鏈接器選項,但沒有任何問題。 有沒有辦法解決此錯誤?

我的印象是,任何32位代碼也都與64位系統模庫兼容。

通過處理器和操作系統共同支持的特殊兼容模式,可以在運行64位操作系統的x64機器上執行x86可執行文件(即為32位x86處理器編譯的目標代碼)。 這是可行的,因為x86指令集是x64指令集的子集。

但是,ABI的許多元素在x86和x64代碼之間有所不同,特別是調用約定和指針大小。 調用約定需要在調用代碼和被調用代碼之間匹配,否則事情會搞砸了。 因此,沒有直接的方法可以從32位代碼中調用64位代碼,反之亦然。

暫無
暫無

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

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