蓝牙CC2541添加source insight 的时候出现多个同名文件

source insight 建立工程中只能添加。C和。H的文件,所以有些宏定义是否定义有可能看不出来。(因为在其他文件中可能被定义,而又没有添加到source insight 中)方法有:就是在宏定义的地方加入错误,报错则判断宏定义,不报错则没定义。

 

在对cc2541工程添加SI工程时候出现如下的同名问题

 

这种hal_key.c等好多文件都出现了同名的两个文件,而且可以具体的看有的两个文件里面内容是不一样的。

第一 首先对于编译器,如果工程中出现两个相同的名字的。H或者。C文件肯定会报错了。(1,不能出现同样名字的文件,2,如果两个文件都被编译进去相同变量重复定义的错误)这里我source insight 中肯定是多添加了工程中没有用到的文件,且其名字是相同的。

第二,如何知道哪个文件是在工程中用到的了

1,在IAR编译的器的中间行中 additional include (添加编译头文件路径),比如上面的Hal-key.h有一个是在这个路径,下有一个不是在那个路径下。

蓝牙CC2541添加source insight 的时候出现多个同名文件_第1张图片

 

2.。可以直接在任意一个Hal-key.h的头文件中加入错误,如果编译器报错,则这个头文件是在工程中使用的,同理然后在验证另外一个。

第三,为什么在source insight 中会出现多个同样的文件了。

在 Components\hal 文件中有个include 这个是头文件 ,这个头文件在上面的编译器中头文件路径是添加了的。然后还有个target文件,这个文件里面有4个文件,可以点进去看看,其中后面三个文件 CC2540USBCC2541ARCCC2541ST中都会出现include 当中的定义的相同命名头文件。所以source insight 建工程时候,会将target下面的4个文件中的所有文件都加入到source insight 工程中,这样就出现了很多相同的文件。而实际在IAR工程中只是用了 includetarget下面的CC2540EB(可以试试这两个文件是没有相同名字的)

为了避免建立source insight 工程时候出现IAR工程中没有用到的文件,就不能将target文件下三个没用到的文件加入到source insight 工程。(在建工程之前,将那个没用到文件删除)

 

第四 target文件下几个定义文件的作用,其重要是不同芯片的。C文件和。H的初始化,这样如果以后会使用相关功能,就可以将这些文件去替换前面include 中的文件,或者在IARoptions c/c++compiler的 additional include 中去添加相关文件的路径。

你可能感兴趣的:(source,Insight,在cc2)