`
dato0123
  • 浏览: 914957 次
文章分类
社区版块
存档分类
最新评论

如何在.proj设置附加头文件路径

 
阅读更多

//=====================================================================
//TITLE:
// 如何在.proj设置附加头文件路径
//AUTHOR:
// norains
//DATE:
// Wednesday 29-September-2010
//Environment:
// KEIL MDK 4.0
// .NET Micro Framework Porting
//=====================================================================

如果你在.NET Micro Framework Porting的Solution里新建了一个xxx.proj,并且这个xxx.proj中要编译的CPP或C还需要附加的头文件,但偏偏所需的头文件目录并不是默认的,那么我们应该如何在xxx.proj中设置相应的头文件呢?

在xxx.proj设置头文件的关键字是IncludePaths,而这个关键字只能在ItemGroup区域有效。所以,添加附加头文件的路径写法如下:

<ItemGroup>
<IncludePaths Include="头文件路径 " />
</ItemGroup>

不过,这里会有一个非常有意思的问题。假如我们有一个Solution叫MySolution,并且新建的工程叫NewProj,而这个工程所需要的附加头文件在Addtion文件夹。可能这样讲有点迷糊,还是以路径来表示。

新的工程的文件位于:$(SPOCLIENT)/MySolution/NewProj/NewProj.proj

而附加头文件的目录位于:$(SPOCLIENT)/MySolution/Addtion

$(SPOCLIENT)是一个环境变量,为.NET Micro Framework Porting的安装目录。比如,在我机器上该变量等于“D:/ProgramFiles/NetMicroFramework/v4_1”。

根据如上的信息和知识,我们很可能在NewProj.proj会写下如下语句:

<ItemGroup>
<IncludePaths Include="$(SPOCLIENT)/MySolution/Addtion " />
</ItemGroup>

但如果是这样的书写,那么编译的时候还是会提示找不到头文件!而原因很简单,就是头文件的路径不对!可能有的朋友看到这里迷糊了,不是已经填入了正常的路径了么?是的,你说的没错,但错就错在编译器会画蛇添足!

如果你仔细查看编译的输入信息的话,你会发现这个头文件的路径已经变成:$(SPOCLIENT)/$(SPOCLIENT)/MySolution/Addtion!也就是说,在我的机器上,它的路径变为:D:/ProgramFiles/NetMicroFramework/v4_1/ D:/ProgramFiles/NetMicroFramework/v4_1/MySolution/Addtion!这样的路径,能够正常找到头文件就见鬼了!

所以,对于包含头文件的语句,只能更改如下:

<ItemGroup>
<IncludePaths Include="MySolution/Addtion " />
</ItemGroup>

这个时候,再次编译,应该就能正确找到所附件的头文件了。

因为编译器会将.NET Micro Framework Porting的安装路径附加到IncludePaths的路径之前,所以我们不难看出,附加的头文件只能位于.NET Micro Framework Porting安装目录之下,否则编译的时候是无法如你所愿的。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics