[英]Intel-style inline assembly in gcc
我正在嘗試使用gcc編譯器在Code :: Blocks中編譯一個舊的C ++軟件項目,在解決了一些其他問題之后,我遇到了問題:該項目有一個英特爾式內聯ASM文件寫成
_asm {
code here
}
並且編譯器拒絕使用“error:'_asm'在此范圍中聲明”來編譯它。
我花了一段時間谷歌搜索解決方案,但我唯一能找到的是將-masm=intel
添加到構建選項(我已經嘗試過但無法工作),或轉換代碼asm ("code here");
(由於ASM的數量龐大,這是不可行的)。 有誰知道如何讓gcc按原樣編譯這段代碼,還是應該放棄並使用不同的編譯器?
GCC對內聯匯編程序使用了非常不同的語法 ,因此您將無法通過簡單的更改來處理它。 我看到以下選項:
你根本無法讓gcc按原樣編譯代碼。 如果你需要使用gcc編譯這個東西,你必須用C ++或gcc兼容的asm重寫代碼。 如果真的有很多匯編代碼 - 比方說200條指令或更多 - 那么學習gcc匯編語法可能是值得的; 如果沒有,用C ++編寫代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.