我对在 xcode 4.6 中隐藏符号有一点问题或误解。我在网上到处搜索,找不到任何有相同问题的帖子。
目前我已经创建了一个框架项目,其中包含一个简单的头文件,其中包含:
class Test
{
public:
Test(){}
Test(){}
};
int a(int n) {return n;}
__attribute__((visibility("hidden"))) int b(int n) {return n;}
__attribute__((visibility("default"))) int c(int n) {return n;}
class X
{
public:
virtual ~X();
};
class __attribute__((visibility("hidden"))) Y
{
public:
virtual ~Y();
};
class __attribute__((visibility("default"))) Z
{
public:
virtual ~Z();
};
X::~X() { }
Y::~Y() { }
Z::~Z() { }
在项目设置中,我确保将“默认隐藏的符号”切换为“是”,因此只有函数 int c 和 z 类将被导出或对其他项目可见。
我构建了没有错误或警告的框架,然后将其复制/添加到可可应用程序中进行测试。
我能够包含头文件,但我仍然能够访问所有类和函数。
我希望有人能解释我为什么或哪里出错或以前遇到过这个问题?
问候