我正在学习有关链接..
我写在C下面的代码的.o和使用gcc符号表条目
int f()
{
static int x=0;
return x;
}
extern int z;
int g()
{
static int x=10;
return x;
}
static int y;
static int y=9;
int main()
{
return 0;
}
再发我做了这个成.O :
gcc begin.c -o begin.o
现在当我使用readelf检查symtab时没有记录z ....为什么?
gcc如何让两个'y'?
和.data部分两个'x'是如何区分的?
不知道我以前错过了这个,但是'gcc'命令生成一个可执行文件,而不仅仅是一个名为'begin.o'的目标文件。你真的用'-c'运行它吗? –
它生成一个可执行的对象文件,只需要加载器 – avinash