我一直在为我的iPhone Xcode项目使用下面链接中的boost框架:https://goodliffe.blogspot.com/2010/09/building-boost-framework-for-ios-iphone.html
它工作正常,但我总是收到数百个Apple Mach-O链接器(Id)警告,如:
__ZN5boost15program_options6detail7cmdline24handle_additional_parserERSt6vectorISsSaISsEE中的
直接访问全局弱符号__ZTVN5boost17bad_function_callE意味着弱符号在运行时不能被覆盖。这可能是由于使用不同的可见性设置编译不同的翻译单位造成的。
如何消除代码中的警告?
编辑:通过设置默认的符号隐藏= YES,我成功地消除了大多数警告,但是还有3条是不会消失的,有人能告诉我为什么吗?
再次编辑:重建后,剩下的3条警告也消失了!所以我的解决方案奏效了!
发布于 2011-12-30 23:40:14
Doe刚刚想出了如何消除数百个这样的警告:为整个目标或项目设置默认的符号隐藏的 build设置为YES
发布于 2012-08-09 08:21:57
如果boost包含在多个项目中,则每个项目必须具有相同的
Symbols Hidden by Default
Inline Methods Hidden发布于 2015-01-05 15:28:16
链接器抱怨您的项目和Boost之间存在不同的可见性设置。
您还可以通过使用相同的兼容性设置重新编译Boost来解决此问题。
只需加上
cxxflags=-fvisibility=hidden和
cxxflags=-fvisibility-inlines-hidden到bjam命令行。
https://stackoverflow.com/questions/8685045
复制相似问题