如何在.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安装目录之下,否则编译的时候是无法如你所愿的。

posted @ 2010-09-29 18:47  我的一天  阅读(277)  评论(0编辑  收藏  举报