-fvisibility =隐藏未被编译器传递给Debug构建

时间:2016-03-08 07:31:30

标签: c++ ios xcode static-libraries visibility

我正在构建一个项目,我在其中启用了GCC_INLINES_ARE_PRIVATE_EXTERNGCC_SYMBOLS_PRIVATE_EXTERN,因为我正在使用预先构建了这些标志的静态库。

但是,当我为Debug -fvisibility=hidden构建我的项目时,它不包含在编译器标志中,但是当我为Release构建项目时它确实包含在内。

我需要打开其他标志才能实现这一目标吗?

2 个答案:

答案 0 :(得分:0)

似乎是一个Xcode错误。我没有找到任何其他解决方案明确设置GCC_INLINES_ARE_PRIVATE_EXTERN(仅在调试版本中,在同一级OTHER_CFLAGS = "-fvisibility=hidden"; 设置)来覆盖它:

<ListBox x:Name="menu" SelectionMode="Single" SelectionChanged="Changed">
       <Grid>
          <Grid.RowDefinitions>
             <RowDefinition Height="Auto"/>
             <RowDefinition Height="Auto"/>
             <RowDefinition Height="100"/>
          </Grid.RowDefinitions>
          <ListBoxItem Name="Main" Grid.Row="0">
             <StackPanel Orientation="Horizontal">
                <TextBlock FontSize="20" FontFamily="Segoe MDL2 Assets" 
                           Text="&#xE710;"/>
                <TextBlock FontSize="17" Text="Add" Margin="10 0 0 0"/>
             </StackPanel>
          </ListBoxItem>
         <ListBoxItem Name="Details" Grid.Row="1">
            <StackPanel Orientation="Horizontal">
               <TextBlock FontSize="20" FontFamily="Segoe MDL2 Assets" 
                          Text="&#xE71B;"/>
               <TextBlock FontSize="17" Text="Add Link" Margin="10 0 0 0"/>
             </StackPanel>
          </ListBoxItem>
       </Grid>
    </ListBox>

答案 1 :(得分:0)

这是旧的,但似乎冲突来自Enable Testability设置。如果你关闭它,那么-fvisibility = hidden将正常工作。 Enable Testability似乎优先于GCC_SYMBOLS_PRIVATE_EXTERN。

如果您需要该设置,您始终可以在配置的基础上修改设置并混合搭配(即启用可测试性并且包含-fvisibility = hidden的OTHER_CFLAGS)