DSP编程技巧之5---揭开编译器神秘面纱之调试与路径选项
然后针对初学者经常遇到的找不到头文件或者宏定义的问题,这个貌似是大多数初学者在新建工程时、添加完文件然后编译程序时都会遇到的:明明看见头文件它就在那里了,可是编译器就是不认识它;或者在CCS里面已经打开了头文件能看到内容了,可是编译器一直在提示xxx.h头文件打不开。因为头文件里定义了各种各样的变量、结构体、宏定义甚至函数声明等,所以一个头文件找不到的话往往会带来几十个上百个“未定义”相关的错误。在此我们就看一下编译器的包含选项,理解了它的使用方法,自然就不会再遇到类似的问题了。
本文引用地址://m.amcfsurvey.com/article/215181.htm表2 编译器的包含选项
选项
|
别名
|
优化的效果
|
--include_path=directory
|
-I
|
用来定义引用头文件时#include中文件的路径。这个不难理解,基本上就是指代我们在程序中引用头文件时制定的头文件的路径。初学者经常遇到的问题就是头文件找不到,然后出现一大堆的调试错误,所以要掌握这个选项。
Ø在引用头文件时,如果使用双引号”xxx.h”进行引用的话,则编译器在编译时按照下面的顺序和路径依次进行寻找:
1.从任何引用了xxx.h的源程序所在的文件夹里进行搜索。所以在编译时如果提示缺失xxx.h文件,最快捷的方法就是找到这头文件把它放在源程序所在的文件夹里(当然这样不利于有条理地管理工程文件)。
2.从-I参数中所制定的路径里面搜索。
3.从安装CCS时生成的C2000_C_DIR环境变量指向的路径里面搜索。
Ø在引用头文件时,如果使用尖括号 1.从-I参数中所制定的路径里面搜索。
2.从安装CCS时生成的C2000_C_DIR环境变量指向的路径里面搜索。
观察两种头文件引用方法的共同点,我们可以得出,除了系统自带的头文件,例如 -i"....DSP2833x_headersinclude" -i"....DSP2833x_commoninclude"
|
--preinclude=filename
|
|
在编译开始时指定源程序的文件名filename。这个选项主要用来建立标准的宏定义。这些文件名的搜索也按照-I定义的路径来进行,并按照制定的顺序编译。
|
评论