最近在PB中编译驱动的时候出现一个错误,“fatal error C1083: Cannot open include file: regext.h: No such file or directory”。这种错误一般是文件中包含的头文件的路径没有指定,所以编译的时候找不到该头文件。于是我打开目录下面的sources文件查看,确实没有指定该头文件的路径,如是我按照以下方式添加了路径申明:
INCLUDES=$(_TARGETPLATROOT)\src\inc
INCLUDES=$(_TARGETPLATROOT)\src\xllp\inc -----------这一句是我添加的
没想到错误依旧存在,这回报告的错误是找不到这个路径INCLUDES=$(_TARGETPLATROOT)\src\inc下的头文件了,这就奇怪了,这个路径明明已经申明了啊!?于是我把刚才添加的那个路径删掉,重新编译,这回又报告之前的错误了。郁闷!?这说明我上面的写法二者只能取其一,而且是最后面的那个路径是有效的,前面的无效。
后来我查看了其它目录下面sources文件中INCLUDES的写法,有2种,如下:
方式一:
INCLUDES=$(_TARGETPLATROOT)\src\inc
INCLUDES=$(INCLUDES);$(_TARGETPLATROOT)\src\xllp\inc
方式二:
INCLUDES= \
$(_TARGETPLATROOT)\src\inc; \
$(_TARGETPLATROOT)\src\xllp\inc; \
我尝试了按照这2种方式修改了一下,都OK,编译通过。
总结:sources文件下利用INCLUDES包含多个路径的时候,一定要注意承接符号,方式一中的承接符是”$(INCLUDES);“,而方式二中的承接符是“\”,这个承接符千万不能省略,不然的话编译的时候都会报告错误。