g ++名称修改外部变量名称

时间:2014-10-08 09:49:23

标签: c++ g++ extern name-mangling

有简单的文件
a.cpp:

//a.cpp
extern const int n = 8;
const int b = 10;

编译:
g++ -c a.cpp -fPIC

使用readelf -sw检查:

Symbol table '.symtab' contains 11 entries:
Num:    Value          Size Type    Bind   Vis      Ndx Name
...
6: 0000000000000004     4 OBJECT  LOCAL  DEFAULT    4 _ZL1b
...
9: 0000000000000000     4 OBJECT  GLOBAL DEFAULT    4 n
...

为什么b const int名称被破坏,但extern全局变量const int n名称没有被破坏?

标准是否定义了这种行为(不是修改名称)还是g++功能?

0 个答案:

没有答案