dcc编译器调用
作用
编译c文件
命令格式
dcc [编译选项] 输入文件
编译选项=命令行选项,用来改变编译器的行为
写命令行选项的规则
编译选项可以有几个来源:命令行,环境变量,配置文件。空格只允许在选项字符后面
包围值的引号在命令行中不起作用,比如-DTEST=”test”
意味着在代码中出现的TEST符号等于test,而不是”test”,需要用-DTEST=\\”test\\” 那么TEST=”test”
编译命令选项描述
\\来避免,例如
显示编译选项信息
-? 显示通常编译选项的信息
-?? 显示不常用的编译选项的信息
-?W 显示-W编译选项的信息
-?X 显示-X编译选项的信息
忽略预定义的宏和断言
-A- 让预处理器忽略预定义的宏和断言(assert)
-A 预断言 比如dcc –A test 等于 #assert test
-C 让C处理器传递注释。和-E –P选项一起使用
-c 汇编后编译停止,产生obj文件(默认*.o除非用-o选项改变)
-D 定义预处理宏(相当于程序中使用#define)-D a=b 相当于 #define a b
-E 预处理完毕后停止,把源代码打印到标准输出
-e 改变编译诊断严格级别
-ei 忽略 –ew 编译告警信息输出 –ee编译错误信息输出 –ef 致命错误信息输出
-g 产生符号调试信息
-g 同g2
-g0 不产生符号调试信息,默认选项,对程序性能无影响
-g1 产生符号调试信息,不考虑行号信息,对程序性能无影响
-g2 产生符号调试信息,格式为ELF或者DWARF或者COFF,取决于DOBJECT环境变量,通常通过-t 选项设置为那一种格式
-g3 产生符号调试信息,执行所有优化。这样的代码很难被调试,当需要调试时,最好选择-g2选项。
注:-g选项也可以在代码内指定其调试级别,如 #pragma option –g2
-H 打印所有头文件的路径
-I 指定头文件的目录
-I 目录 把目录加入到头文件搜索的列表,只允许全路径名。
-i 修改头文件处理 –i file1=file2 在包含(#include )命令中用file2代替file1
-i file1= 忽略任何的file1包含命令 –i =file2 在处理其他代码前包含file2
-M 指定目标配置文件的路径名
-O 优化代码,使用-O或者-XO来使能代码优化。也可以在代码内指定 #pragma option –O
-o 指定输出文件的类型,-o file 通常和-P –S –c 一起使用,和-P一起使用产生file.i,和-S一起使用产生file.s,和-c一起使用产生file.o,如果不使用-P –S –c ,产生a.out
-P 预处理后停止,产生源代码(默认扩展名*.i),和-E选项不同的是,-P输出不包括预处理指令,也不输出到标准输出上(比如dos窗口)
-S 编译后停止,产生汇编文件(*.s)
-t 选择目标处理器和启动库 格式为 –t tof:environ
-U 去除预定义的宏 –U name 等于 #undef name
-V 显示版本号
-VV 同-V
-v 显示详细信息
-W a,arg1,arg2…
-W :as:,arg1,arg2… 以上为传递参数给汇编编译器的两种不同格式,比如 –Wa,-l 或者-W:as:,-l代表把-l传递给汇编编译器以获得汇编列表文件
-W Dname=value 定义配置变量,在配置文件处理时定义一个变量的值来使用。
-W l,arg1,arg2…
-W :ld:,arg1,arg2… 以上为传递参数给链接器的两种不同格式,比如 –Wl,-m 或者-W:ld:,-m代表把-m传递给链接器以获得链接map文件
-W mfile指定链接命令文件,替换默认的dld文件
-W sfile指定代码起始模块,使用给定的目标文件替换默认的起始文件crt0.o
-W xfile 替换默认的程序或者文件
-W x,arg 传递参数给子程序
-w 取消所有编译警告(不显示)
因篇幅问题不能全部显示,请点此查看更多更全内容