问题:
nm -A -l a.out出现如下信息:
0000000020 r func
说明,这个变量在只读数据段,并且是static的。
如果编译a.out时加上 -O3
发现0000000020 r func没有了
尝试O1,O2,现象类似。
结论:使用gcc的O1,O2,O3优化时,静态变量的符号将被优化掉。nm看不到,strings也看不到静态函数的符号