![](/img/trans.png)
[英]C++ -fvisibility=hidden -fvisibility-inlines-hidden
[英]-fvisibility=hidden not passed by compiler for Debug builds
我正在构建一个项目,在该项目中我启用了GCC_INLINES_ARE_PRIVATE_EXTERN
和GCC_SYMBOLS_PRIVATE_EXTERN
因为我正在使用那些预先构建的静态库。
但是,当我为 Debug 构建我的项目时-fvisibility=hidden
没有包含在编译器标志中,但是当我为 Release 构建我的项目时它会被包含在内。
是否还有其他标志需要打开才能实现?
这是旧的,但似乎冲突来自启用可测试性设置。 如果您将其关闭,则 -fvisibility=hidden 将正常工作。 似乎启用可测试性比 GCC_SYMBOLS_PRIVATE_EXTERN 具有更高的优先级。
如果您需要该设置,您可以随时根据配置修改设置并混合搭配(即启用可测试性和包含 -fvisibility=hidden 的 OTHER_CFLAGS)
似乎是 Xcode 错误。 我没有找到任何其他明确设置OTHER_CFLAGS
解决方案(仅在调试版本中,在同一级别设置GCC_INLINES_ARE_PRIVATE_EXTERN
)来覆盖它:
OTHER_CFLAGS = "-fvisibility=hidden";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.