在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:指定可执行文件的入口函数

COPYRES:如果设置了此变量,则会把资源文件复制到realease目录

LDEFSTACK:指定程序中为栈保留多少空间大小,默认为64KB

PRECOMPLIED_CXX:是否对C++ 文件使用与编译。构建系统默认对C程序预编译,如果代码是用C++写的,并且希望预编译,则必须指定此项。如:PRECOMPLIED_CXX =1

PRECOMPLIED_INCLUDE:指定预编译文件名字

PRECOMPLIED_OBJ: 预编译生成的obj文件的名字

PRECOMPLIED_PCH: 指定预编译生成的pch文件的名字

PRECOMPLIED_TARGET:同PRECOMPLIED_OBJ的效果

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:用于定义用户自己的编译器参数取代默认的编译器参数

WINCE BSP中source文件中的宏定义相关推荐

  1. Android:Android NDK项目中C++文件中打印日志

    Android NDK项目中C++文件中打印日志 工作需要,在NDK项目中的C++文件中打印日志,还是费了点劲查找 才达到自己 想要的效果了. 步骤 添加头文件 添加头文件 定义宏函数 #includ ...

  2. Myeclipse中js文件中的乱码处理

    Myeclipse中js文件中的乱码处理 导入外部js文件到MyEclipse中打开是乱码,无法设置使用哪种编码格式,总不能在里面加上<%@ page pageEncoding="UT ...

  3. 在linux中的文件中查找_如何在Linux中查找文件

    在linux中的文件中查找 如果您是Windows用户或OSX的非超级用户,则可能使用GUI查找文件. 您可能还会发现界面有限,令人沮丧或两者兼而有之,并且学会了精于组织事物并记住文件的确切顺序. 您 ...

  4. 计算机内用户文件夹中的文件,在位于计算机上所有用户的AppData文件夹中的文件中修改一行...

    我想修改位于计算机上所有用户的AppData文件夹中的文件中的一行.在位于计算机上所有用户的AppData文件夹中的文件中修改一行 线在prefs.js文件来改变开始: user_pref(" ...

  5. WinCE中sources文件中targetlibs与sourcelibs的作用与区别

    在WinCE里面,编译和链接的必备文件sources,做过WinCE BSP开发的一定都很熟悉,其中有2个关键字,targetlibs和sourcelibs,一直让我对其中的区别很感兴趣,故查阅了一些 ...

  6. KEIL工程中汇编文件添加条件编译宏

    在项目中,移植第三方组件到工程中,由于出现相同的函数定义导致程序链接时出现重复定义问题.后来考虑添加条件编译宏来控制使用自己的函数还是第三方组件的宏.在C文件中,通过#if/#else/#endif或 ...

  7. WinCE BSP的BIB文件介绍

    在WinCE中使用的一个重要的文件就是BIB文件,全称Binary Image Builder File.在WinCE的编译过程中会用到BIB文件,应该是在最后的Makeimg阶段.所有的BIB文件会 ...

  8. Linux中的两个经典宏定义:获取结构体成员地址,根据成员地址获得结构体地址;Linux中双向链表的经典实现。...

    倘若你查看过Linux Kernel的源码,那么你对 offsetof 和 container_of 这两个宏应该不陌生.这两个宏最初是极客写出的,后来在Linux内核中被推广使用. 1. offse ...

  9. 【C 语言】文件操作 ( 学生管理系统 | 命令行接收数据填充结构体 | 结构体写出到文件中 | 查询文件中的结构体数据 )

    文章目录 一.学生管理系统 二.代码示例 一.学生管理系统 前两篇博客 [C 语言]文件操作 ( 将结构体写出到文件中并读取结构体数据 | 将结构体数组写出到文件中并读取结构体数组数据 ) [C 语言 ...

最新文章

  1. 2013 ACM/ICPC 亚洲区 杭州站
  2. 牛客网(剑指offer) 第十六题 合并两个排序的链表
  3. VGGNet原理及tensorflow实现
  4. Confluence 6 升级自定义的站点和空间布局
  5. mybatis原始mapper开发未集成springMVC
  6. Appcan、apicloud、HBuilder 不同之处解析
  7. Reading Thinking in Java #3
  8. [洛谷P1501][国家集训队]Tree II(LCT)
  9. AJAX最大的特点以及作用是什么?经典面试题
  10. pvs、pvdisplay、pvscan 查看物理卷信息
  11. 计算机控制系统a卷-答案,微型计算机控制技术试卷附标准答案A
  12. matlab对图像处理差分,MATLAB图像处理实例详解
  13. java线程栅栏_用栅栏(CyclicBarrier)实现高并发测试
  14. 二进制计算机代码,二进制代码是什么???
  15. 2008r2 请检查名称的拼写_甲状腺素、甲状腺激素、T3、T4…这些名称你分得清吗?...
  16. GISer开发者的技能清单
  17. 腾讯云直播产品系列(一):标准直播POC实践
  18. 为什么子进程要继承处理器亲缘性?
  19. windows下虚拟机ping不通主机的原因+我的解决办法
  20. 基于 Vue 开发一个 多人聊天室(万字长文) - 从 0 到 1 篇

热门文章

  1. Java中的Type接口和Class类有什么区别
  2. 3399 mysql_手动安装 mysql
  3. 路由器桥接显示服务器已满,两个迅捷路由器经过有线桥接已经成功连接上,但是测试的时候副路由器却连接不上服务器?为什么?谢谢!...
  4. mysql 字符转数值_深入MYSQL字符数字转换的详解
  5. 位运算 中度难度 子集
  6. RabbitMQ 声明Queue时的参数们的Power
  7. JS-为金额添加千分位逗号分割符
  8. 新加入“扫码阅读”功能
  9. 安装用户debian7安装oracle11g
  10. 云谊网-赴日人才社交网络