Xcode Sym
隐藏在使用Xcode构建的静态库中的符号
汇编控制为项目内共有
1
2
3
4
5
6
7
8
9
10
11
.global _my_public_add // 声明my_public_add为全局符号
.private_extern _my_private_add // 声明my_private_add为私有外部符号
.section .text // 代码段
_my_public_add:
ADD r0, r0, r1 // 将r0和r1相加,结果放入r0
BX lr // 返回到链接寄存器中的地址
_my_private_add:
SUB r0, r0, r1 // 将r1从r0中减去,结果放入r0
BX lr // 返回到链接寄存器中的地址
C++设置
Cflags 添加 -fvisibility=hidden
Symbols Hidden By Default 选择Yes
//———————————————————–
隐藏在使用Xcode构建的静态库中的符号 是指在编译和链接过程中,一些函数、变量或类被标记为私有,不对外暴露其符号信息。这样做的目的是为了保护代码的安全性和知识产权,同时减少对外部使用者的依赖。
隐藏符号可以通过以下几种方式实现:
静态库的编译选项:在Xcode中,可以通过设置编译选项来控制符号的可见性。使用”-fvisibility=hidden”参数可以将所有符号默认设置为隐藏,然后通过使用”attribute((visibility(“default”)))”来显式地将需要对外暴露的符号设置为可见。
链接器选项:在链接过程中,可以使用”-visibility hidden”参数将所有符号默认设置为隐藏,然后通过使用”-exported_symbol”参数来显式地将需要对外暴露的符号设置为可见。
隐藏符号的优势包括:
代码安全性:隐藏符号可以防止他人直接调用或修改库中的私有函数和变量,提高代码的安全性和防护能力。
减少命名冲突:隐藏符号可以避免与其他库或应用程序中的相同符号发生命名冲突,提高代码的可移植性和可靠性。
简化接口:隐藏符号可以隐藏内部实现细节,只暴露必要的接口,简化库的使用方式,提高代码的可读性和易用性。
隐藏符号的应用场景包括:
开发框架和库:隐藏符号可以用于开发框架和库,将内部实现细节隐藏起来,只暴露必要的接口给外部使用者。
私有函数和变量:隐藏符号可以用于标记一些私有函数和变量,防止他人直接调用或修改。
插件和扩展:隐藏符号可以用于插件和扩展,将插件的内部实现细节隐藏起来,只暴露必要的接口给主程序。