我使用gcc.exe -S -masm=intel -o filename.S filename.c
从C代码创建汇编代码。我将一些变量声明为extern
以允许稍后链接。我在nasm中期望类似extern variable
,但在汇编文件中从未提及变量。
有没有办法检查变量是否是extern?或者我可以强制gcc将此信息添加到汇编文件中吗?
答案 0 :(得分:2)
如果汇编文件中未提及extern
变量,则可能不会使用此变量。但是,即使您使用它,您也不会在程序集中看到.extern varname
之类的内容。 GNU汇编程序将所有未定义的符号视为外部符号。 GCC知道这一点并且没有发出.extern
指令。所以,寻找,嗯," PC-relative"变量(如mov eax, DWORD PTR varname[rip]
)。这是你的extern
vars。