znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
阅读:1781回复:1

Dirs文件和Sources文件 详解

楼主#
更多 发布于:2008-12-09 15:38
1.  Dirs文件

关于Dirs文件,就是指定要编译的路径,这个地球人都知道。还是简单介绍一下。按照文档上面介绍有三种定义:DIRS,DIRS_CE和OPTIONAL_DIRS。

 

DIRS:就是指定要编译的目录。

DIRS_CE:只有目录下的源代码用于WinCE的映像文件时,才编译该目录。

OPTIONAL_DIRS:指定可以选择编译的目录。比如:OPTIONAL_DIRS=proj1,如果想编译proj1目录,可以设置BUILD_OPTIONS=proj1,然后运行build命令就可以了。

 

举个例子:

DIRS= common \

            drivers \

            oal \

            bootloader

表示需要编译common,drivers,oal和bootloader目录。

 

 

DIRS=*  

表示编译当前的所有目录。

 

 

 

2. Sources文件

在WinCE BSP中会看到很多sources文件,一般会和源代码放在同一个目录,当然不是绝对的。这些sources文件里面就是定义了一些宏,主要用于告诉Build.exe在编译源代码的时候应该如何编译和链接,告诉Nmake.exe如何编译源代码以及最后生成什么类型的文件。

 

下面具体介绍一下:

 

TARGETNAME:最后编译完后生成的目标文件的名字,不包括扩展名。

TARGETTYPE:生成的文件的类型。具体值如下:

        LIBRARY,一个.lib文件

        DYNLINK,一个.dll文件

        PROGRAM,一个.exe文件

RELEASETYPE:该宏设置两个环境变量RELEASEDIR和RELEASELIBDIR,就是设置编译后生成文件存放的路径。具体值如下:

        PLATFORM,生成的文件在PLATFORM\<BSP NAME>\<Target>

        LOCAL,生成的文件在当前路径下

        CUSTOM,生成的文件在TARGETPATH指定的位置

        MANAGED,生成的文件在%_PROJECTROOT%\OAK\<Target>\Managed

        OAK, SDK, DDK,生成的文件在%_PROJECTROOT%\Oak\<Target>  

TARGETPATH:当上面的RELEASETYPE=CUSTOM的时候,该宏指定路径

SOURCELIBS:静态链接。函数的实体被链接过来,生成一份拷贝

TARGETLIBS:动态链接。函数的地址被链接过来,系统执行时会加载该库

INCLUDES:指定额外的要搜索的头文件的路径

SOURCES:指定要被编译的文件

ADEFINES:指定汇编器要使用的参数

CDEFINES:指定编译器要使用的参数

LDEFINES:指定连接器要使用的参数

RDEFINES:指定资源编译器Rc.exe的参数

DLLENTRY:指定dll的入口函数

DEFFILE:指定该模块的.def文件

EXEENTRY:指定可执行文件的入口函数

SKIPBUILD:不做实际的build操作,直接返回成功

WINCECOD:编译后生成一个.cod的汇编文件,用于查看汇编代码调试

WINCECPU:用于说明为指定的CPU编译,这样被编译出来的目标文件会被放在_TGTCPU环境变量所指定的子目录下面,一般该宏在sources.cmn中定义。

WINCEMAP:编译后生成一个.map文件,用于调试

WINCEOEM:设置该值表示需要使用WinCE下的一些公用的库和头文件,该值一般在BSP中的sources.cmn中定义。

WINCETARGETFILE0:用于告诉编译系统在编译当前路径下的源码文件之前,要先由Build.exe编译的目标文件。

WINCETARGETFILES:用于告诉编译系统在链接当前路径下所有的目标文件之前,要先由Build.exe编译的目标文件。

WINCE_OVERRIDE_CFLAGS:用于定义用户自己的编译器参数取代默认的编译器参数。
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
kuangnuzhiren
驱动牛犊
驱动牛犊
  • 注册日期2008-03-03
  • 最后登录2012-06-21
  • 粉丝1
  • 关注0
  • 积分34分
  • 威望245点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-09-01 10:30
打个比方,我的.c和.h都放在C盘根目录下。但是我的工程要求放在C:\Windows\System32\Drivers目录下,即makefile和sources要求放在Drivers下。这时SOURCES应该等于什么?知道的别吝啬时间,回复下,谢谢!
游客

返回顶部