您的当前位置:首页正文

dcc编译器调用

2021-12-03 来源:钮旅网


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 取消所有编译警告(不显示)

因篇幅问题不能全部显示,请点此查看更多更全内容