首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

gcc默认并没有将类的成员函数输出到符号表里面对吗? 怎么才能输出呢

2013-12-13 
gcc默认并没有将类的成员函数输出到符号表里面对吗? 如何才能输出呢我发现gcc会把全局函数输出到符号表里

gcc默认并没有将类的成员函数输出到符号表里面对吗? 如何才能输出呢
我发现gcc会把全局函数输出到符号表里面,nm命令就可以看到。但是类的成员函数是用nm命令看不到的。我测试如下:


void g___1(int){}
void g___1(long){}
int  g___1(int,int){}
float g___1(int,int,float,int){}
class A{
public:
        void f(){}
};
int main(void){
        return 0;
}

命令行观察nm的结果如下,可以看到重载的4个全局函数和main函数,但是没有看到A的成员函数f:

[root@localhost ~]$ gcc -c b.cpp
[root@localhost ~]$ nm b.o
00000000 T _Z5g___1i
0000000a T _Z5g___1ii
0000000f T _Z5g___1iifi
00000005 T _Z5g___1l
         U __gxx_personality_v0
0000001a T main

问题: 我希望能在符号表里面看到类的成员函数,应该怎么做呢? 如果类的成员函数实现是在类外面,我发现是可以的。但是如果成员函数的实现在类的内部,似乎GCC默认并不放在符号表里面。我如何能让类内部实现的函数能被GCC导出呢? 谢谢。

[解决办法]
gcc 默认是导出所有
[解决办法]
默认导出所有的啊。

热点排行