我遇到链接器生成未定义引用错误的问题 来自内联汇编代码。
int global_var = 0;
void myfunc()
{
asm(".intel_syntax noprefix\n");
asm("lea eax, global_var\n");
}
我使用GCC 3.4.2编译-masm = intel并且没有优化或任何改进 如果有人也有这种不便,请协助。
答案 0 :(得分:1)
基本上,这是 name mangling 的问题 - 也就是说,编译器在编译阶段破坏(改变)变量和函数的名称。在这种情况下,“global_var”被更改为“_global_var”
如果更改函数的第二行,使其访问“_global_var”,那么编译就好了。 (测试GCC 4.7.1)