好的,咱们今天来聊聊 C++ 里一个挺有意思的东西:符号可见性控制,特别是那个 __attribute__((visibility(“hidden”)))。 咱们的目标是:让你理解它干嘛的,怎么用,以及在设计库的时候,怎么用它来让你的库更牛逼。 开场白:符号,可见性,和库的烦恼 想象一下,你是个建筑师,设计了一栋大楼。这栋楼里有很多房间,有些房间是公开的,谁都可以进,比如大厅;有些房间是私密的,只有特定的人才能进,比如卧室。 在 C++ 的世界里,你的代码就是这栋大楼,函数、变量等等就是房间,而“符号可见性”就是决定哪些“房间”对外开放的规则。 一个库,就是一个预先盖好的“小楼”,你想把它卖给别人用。但你肯定不想把所有房间都暴露给买家,对吧?有些房间是支撑整个楼的结构,买家改动了可能会让楼塌了。 所以,符号可见性控制,就是让你在构建库的时候,能够精确地控制哪些符号(函数、变量、类等等)对外可见,哪些符号只在库内部使用。 __attribute__((visibility(“hidden”))):隐身斗篷 __attribute__((visibility(“hidden”))),你可以 …
继续阅读“C++ 符号可见性控制:`__attribute__((visibility(“hidden”)))` 与库设计”