我想編譯一箇舊的C++軟件項目Code :: Blocks使用GCC編譯器,並修復了一些其他問題後,我碰壁了:項目有一個文件與英特爾式內聯彙編寫成英特爾風格的內聯彙編在海灣合作委員會
_asm {
code here
}
和編譯器拒絕與編譯「錯誤:‘_asm’並沒有在這個範圍中聲明」。
我花了一段時間搜索解決方案,但我可以找到的唯一的方法是將-masm=intel
添加到構建選項(我嘗試過並且無法工作)或將代碼到asm ("code here");
(由於ASM數量巨大,這是不可行的)。有誰知道我可以如何讓gcc按原樣編譯此代碼,還是應該放棄並使用不同的編譯器?
如何生成一個宏,然後使用腳本來替換宏的_asm行。然後你可以更好地編譯器獨立性 – daramarak
一個宏將是一個想法,雖然我以前從未使用過一個宏,所以我不得不弄清楚它(儘管我的問題聽起來很糟糕,實際上我幾乎是一個完整的noob,這個東西= /) 。另外,asm例程與標籤或其他東西('_asm {\ n code here \ n} L01:__asm ...')連接在一起,我不確定如何處理它。 – Dinoguy1000
代碼不會按原樣編譯,您需要將其更改爲使用gcc編譯(或使用MSVC代替)。 –