我们知道,GCC/G++编译出来的二进制文件默认情况下会导出所有的符号表。在实际应用过程中,我们也许出于安全或者其他的原因,不想导出内部所有的符号表,只导出必要的接口给用户使用。此时我们可以利用 GCC/G++ 的 -fvisibility=hidden 选项配合代码的 __attribute__ ((visibility("default"))) 实现。
(1)默认情况,导出所有符号表:
示例代码如下:
test.h:
#ifndef __TEST_H__
#define __TEST_H__
#ifdef __cplusplus
extern "C" {
#endif
void globalDump1();
void globalDump2();
class Dump {
public:
Dump();
~Dump();
void classDump1();<