![](/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.