注 :
1. 开发环境 :VS2005 + BREW SDK 3.1.5 SP02 + BREW SDK TOOLS 1.1.0 SP06
2. 编译环境 :GUNDE
3. 开发语言 :C 语言
4. 配置编译环境省略
一、 lib的编译
1. 创建 lib 工程
按正常方式新建 BREWAppWizard 工程 , 就以 brewlib 为工程名 , 工程里将会有 brewlib.c, AEEAppGen.c,AEEModGen.c 三个文件 , 移除 AEEAppGen.c , AEEModGen.c 文件 , 到 BREWDIR/sdk/src 目录 (BREWDIR 为 Brew SDK 安装目录 ), 复制 AEEModGen.c 文件到工程目录并添加到工程 , 再新建 brewlib.h 文件到工程目录 , 此时工程目录如下图所示 .
打开 AEEModGen.c 并删除里面的所有内容 , 添加以下代码:
打开 brewlib.c 文件,删除所有内容。
打开工程属性--> 常规 --> 配置类型--> 选择静态库 (.lib), 点击确定完成配置 .
此时 lib 的工程模板已经完成 .
2. 生成模拟器可以使用的 lib 文件
现在我们试着写一个 lib ,添加一个函数就叫
打开 brewlib.h 文件 , 添加以下代码 :
然后打开 brewlib.c 文件添加以下代码 :
此时用 VS2005 编译一下在工程目录里即可生成 lib 文件,此 lib 文件只能在模拟器上面使用。
3. 生成真机可以使用的 o 文件
如果正常安装好 GUNDE 编译环境和 SDK 开发环境,在 VS2005 工具栏应该有下图工具栏。
点击 GNU 在工程目录下生成 brewlib.mak 文件。打开 brewlib.mak 文件,找到
修改为
不然的话编译会出错 .
在工程目录新建一个文本文件 , 添加以下内容 :
然后再把该文件命名为 : build.bat 文件,双击打开,编译该工程 . 生成一些 o 文件 ,
如上图所示 ,brewlib.o 文件就是真机使用的文件。其中 brewlib.h 文件就是其他工程需要引用的头文件 .
二、 lib 的使用
按正常方式新建 BREWAppWizard 工程 , 新建一个 UseLib 工程 . 拷贝 brewlib.h , brewlib.lib , brewlib.o 文件到工程目录。
打开 UseLib.c 文件,如图所示包含 brewlib.h 头文件。
打开 UseLib 工程属性--> 连接器--> 输入--> 附加依赖项,添加 brewlib.lib 。
我们先测试一下 int add (int x,int y); 方法。
如图所示。此时编译工程,会有
brewlib.lib(brewlib.obj) : warning LNK4099: 未找到PDB “vc80.pdb ”( 使用“brewlib.lib ”或在“d:/BrewWorkSpace/BrewLib/UseLib/vc80.pdb ”中寻找) ;正在链接对象,如同没有调试信息一样
警告,没有关系,不用理睬。
这时候用模拟器就可以运行了。
如果要编译到真机运行 , 点击 中的 GUN 生成 UseLib.mak 文件,作一下两处修改。
(1). 找到LIBS = -lgcc 并注释掉。
(2). 找到 $(TARGET).$(EXETYPE) : $(APP_OBJS)
如图所示添加 brewlib.o 。
在工程目录新建一个文本文件 , 添加以下内容 :
然后再把该文件命名为 : build.bat 文件,双击打开,编译该工程 . 生成 UseLib.mod 文件, UseLib.mod 文件就是真机上面的可执行文件。
如果转载,注明出处.
< 完 >