簡體   English   中英

從gcc的內聯匯編中引用全局變量

[英]referencing global variables from inline assembly in gcc

我有一個問題,即鏈接器從內聯匯編代碼生成未定義的參考錯誤。

int global_var = 0;
void myfunc()
{
    asm(".intel_syntax noprefix\n");
    asm("lea eax, global_var\n");
}

我正在使用-masm = intel進行編譯,沒有進行任何優化或任何操作,使用GCC 3.4.2。如果有人也遇到這種不便之處,請提供幫助。

基本上,這是名稱處理的問題-也就是說,編譯器在編譯階段處理(更改)變量和函數的名稱。 在這種情況下,“ global_var”更改為“ _global_var”

如果您更改函數的第二行以使其訪問“ _global_var”,則編譯就可以了。 (經過GCC 4.7.1測試)

暫無
暫無

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

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