Xcode 常用编译选项设置

乍一看,这些设置可能太麻烦,其实它真的可以节省许多调试应用的时间,在xcconfig文件中指定即可。

用标准库连接
LINK_WITH_STANDARD_LIBRARIES = YES

如果激活此设置,那么编译器在链接过程中会自动使用通过标准库的链接器。



Info.plist 输出编码
INFOPLIST_OUTPUT_FORMAT = binary

指定Info.plist文件的输出编码(默认情况下,输出与输入的编码保持不变),这个输出编码能指定“binary”或者“XML”。


生成调试符号

GCC_GENERATE_DEBUGGING_SYMBOLS = NO

当启用的时候,详情等级能够通过build的'Level of Debug Symbols'设置去控制。

隐藏内联方法

GCC_INLINES_ARE_PRIVATE_EXTERN = YES

Objective-C GC

GCC_ENABLE_OBJC_GC = Unsupported

优化级别

GCC_OPTIMIZATION_LEVEL = Fastest, Smallest   [-OS]

  • None: 不做优化使用这个设置,编译器的目标是减少编译成本,使调试产生预期的结果。
  • Fast:优化编译将为大函数占用更多的时间和内存使用这个设置,编译器将尝试减少代码的大小和执行时间,不进行任何优化,需要大量编译时间。
  • Faster:编译器执行几乎所有支持的优化,它不考虑空间和速度之间的平衡与“Fast”设置相比,该设置会增加编译时间和生成代码的性能。编译器不进行循环展开、内联函数和寄存器变量的重命名。
  • Fastest:开启“Faster”支持的所有的优化,同时也开启内联函数和寄存器变量的重命名选项
  • Fastest,smallest:优化代码大小这个设置启用“Faster”所有的优化,一般不增加代码大小,它还执行旨在减小代码大小的进一步优化。

C语言方言

GCC_C_LANGUAGE_STANDARD = C89

警告

检查Switch语句

GCC_WARN_CHECK_SWITCH_STATEMENTS = YES

隐藏局部变量

GCC_WARN_SHADOW = YES

隐式转换成32位的类型

GCC_WARN_64_TO_32_BIT_CONVERSION = YES

未完成的Objective-C协议

GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = YES

抑制所有的警告

GCC_WARN_INHIBIT_ALL_WARNINGS = NO

初始化时没有完整的括号

GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES

例子(a没有完全的括号,b有):

int a[ 2 ][ 2 ] = { 0, 1, 2, 3 };

int b[ 2 ][ 2 ] = { { 0, 1 }, { 2, 3 } };

不匹配的返回类型

GCC_WARN_ABOUT_RETURN_TYPE = YES

缺少括号

GCC_WARN_MISSING_PARENTHESES = YES

例子:

{
    if( a )
        if( b )
            foo();
        else
            bar();
}
{
    if( a )
    {
        if( b )
            foo();
        else
            bar();
    }
}

在结构体初始化时缺少字段
GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES

缺少函数原型

GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES

在文件结尾缺少新行

GCC_WARN_ABOUT_MISSING_NEWLINE = YES

选择了多个定义的类型(@Selector)

GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR = NO

严格的Selector匹配

GCC_WARN_STRICT_SELECTOR_MATCH = YES

把缺少函数原型当作错误

GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES

把所有的警告当作错误

GCC_TREAT_WARNINGS_AS_ERRORS = YES

未定义的Selector

GCC_WARN_UNDECLARED_SELECTOR = YES

未初始化的自动变量

GCC_WARN_UNINITIALIZED_AUTOS = YES

未知的Pragma指令

GCC_WARN_UNKNOWN_PRAGMAS = YES

未使用的函数

GCC_WARN_UNUSED_FUNCTION = YES

未使用的标签

GCC_WARN_UNUSED_LABEL = YES

未使用的参数

GCC_WARN_UNUSED_PARAMETER = YES

未使用的值

GCC_WARN_UNUSED_VALUE = YES

当一个语句计算的结果显式的未使用的时候发出警告

未使用的变量

GCC_WARN_UNUSED_VARIABLE = YES

警告-所有过时的函数

GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = YES

offsetof宏未定义使用的警告

GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = YES

时间: 2024-09-24 08:36:21

Xcode 常用编译选项设置的相关文章

Linux中gcc g++常用编译选项以及makefile的编写

Linux中gcc,g++常用编译选项 -x language filename 设定文件所使用的语言,使后缀名无效,对以后的多个有效.也就是根据约定,C语言的后缀名称是.c的,而C++的后缀名是.C或者.cpp,如果你很个性,决定你的C代码文件的后缀名是. pig 哈哈,那你就要用这个参数,这个参数对他后面的文件名都起作用,除非到了下一个参数的使用.可以使用的参数有下面的这些: `c', `objective-c', `c-header', `c++', `cpp-output', `asse

常用格式设置——Word 2007书籍排版完全手册4

常用格式设置--Word 2007书籍排版完全手册(四) 经过前面的设置后,就可以开始进行书籍内容的排版了.在排版过程中经常用到以下几种常用格式的设置. 1. 应用样式 在前面已经自定义了三级标题样式.正文样式等,因此我们在编排时就必须严格按照书籍编辑要求,在合适的位置应用这些样式.这样不仅能够做到书籍格式整齐统一,而且可以为今后进行目录提取和建立索引等操作带来极大的方便. 自定义样式的应用非常简单,比如章标题样式应用就是将插入点置于某章标题的任意位置,单击工具栏中" 样式" 的下拉按

SecureCRT学习之道:SecureCRT常用快捷键设置与字体设置方法

SecureCRT学习 Java代码   http://blog.chinaunix.net/uid-28458801-id-4132005.html    之道:SecureCRT常用快捷键设置与字体设置方法http://blog.chinaunix.net/uid-28458801-id-4132005.html收藏    我要投稿1:如果不想每次登陆都输入密码,可以在你打开的session里邮件session option->login action 选中automate logon 双击

jvm常用参数设置 专题

  在jdk8中 -Xms2g不合法,能通过的:-Xms2G #!/bin/bash JAVA_OPTS="-Xms4G -Xmx4G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./dump-yyy.log -XX:ErrorFile=./jvm-crash.log -Djava.security.egd=file:/dev/./urandom" #!/bin/bash JAVA_OPTS="-Xdebug -Xrunj

Visual C++编译器常用选项设置总结

[文章摘要] Microsoft Visual C++是微软公司推出的.在Windows下的可视化集成编程系统,也是广大软件工程师使用得比较多的一款编程软件.本文主要讲述Visual C++编译器常用的选项设置,为大家全面掌握该软件以进行软件开发工作提供了有益的参考. [关键词] Visual C++  选项设置  编译  调试 一.前言 Microsoft Visual C++是Microsoft公司推出的开发Win32环境程序,面向对象的可视化集成编程系统.它不但具有程序框架自动生成.灵活方

百度地图怎么设置常用地点 百度地图APP常用地址设置方法

百度地图APP常用地址设置教程:  . 1.首先打开百度地图APP,点击左上角的头像: 2.在个人中心点击"常用地址": 3.在常用地址里点击右上角的"+"符号添加你最常用的地址就可以了. 以上就是百度地图APP常用地址设置方法,以后想去哪里,就可以通过常用地址里的地址轻松搜索了.

Emacs的移动快捷键+Xcode常用键

虽然不想再学Emacs的使用,但为了在Mac下使用的更顺畅,还是记录下来,因为这些按键可以在Xcode.TextEdit.Safari的URL地址栏等处使用. control-F    向右边(Forward)移动 control-B    向左边(Backward)移动 control-N    向下(Next)移动一行 control-P    向上(Previous)移动一行 control-K    删除(Kill)光标后的代码 control-A    移动到行首(同command+左

Android中Activity常用功能设置小结(包括全屏、横竖屏等)

本文实例讲述了Android中Activity常用功能设置小结(包括全屏.横竖屏等).分享给大家供大家参考,具体如下: Activity全屏设置 方式1:AndroidManifest.xml 复制代码 代码如下:<activity android:name="myAcitivty"  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" /> 方式2:代码实现 复制代码 代码如下:requ

Win2000添加常用服务设置网络属性

一.常用服务简介 1.DNS(Domain Name System):域名系统.它为Internet(因特网)上的计算机提供名称(即如"www.abc.com"的域名)到地址(即如"192.168.0.48"的IP地址)的映射服务以用于域名解析. 2.IIS(Internet Infomation Server):Internet信息服务.它是一种Web服务,主要包括WWW服务器.FTP服务器等.它使得在Intranet(局域网)或Internet(因特网)上发布信