ICCAVR库制作
2015-06-02 12:27
323 查看
在ICCAVR中通过使用库函数来避免直接看到敏感算法源码
制作和使用自定义库文件的范例:
目标:
制作一个库文件libGetMax.a ,其中包含一个外部函数GetMax 。 函数GetMax的作用是判断两个输入参数(int 型)中的最大值,并返回最大值。
制作一个应用范例,使用库libGetMax.a 中包含的GetMax函数。
步骤1: 库文件的生成
为叙述方便,在ICC安装目录新建一目录,并将其命名为libtest。
在ICCAVR IDE环境中新建两个文件,分别命名为GetMax.c和GetMax.h,并保存至工作目录中。两文件内容如下所示:
执行命令ilibw -a libGetMax.a GetMax.o生成库文件(在当前文件夹中新建txt文档,内容是ilibw -a libGetMax.a GetMax.o然后名字改为lib.bat,然后双击即可)。可执行文件ilibw.exe位于icc安装完后的系统目录(默认安装时在C:\icc)的子目录bin中。为使用方便可将ilibw.exe拷贝至工作目录中使用。至此库文件libGetMax.a已生成,其对应的头文件为GetMax.h 。注意库文件的命名必须以“lib”字样开头,否则在IDE中编译下面的应用范例过程中自动链接时会报错(手动链接除外)。
步骤2:应用范例的编写和编译
在工作目录中建立一个工程Test.prj 。工程Test.prj中包含一个C源程序文件Test.c 。Test.C的源代码如下所示:
然后拷贝GetMax.h于工作目录
完成上述步骤后,就以编译和调试test.prj 。
这样就可以用自己的ICC库了。
制作和使用自定义库文件的范例:
目标:
制作一个库文件libGetMax.a ,其中包含一个外部函数GetMax 。 函数GetMax的作用是判断两个输入参数(int 型)中的最大值,并返回最大值。
制作一个应用范例,使用库libGetMax.a 中包含的GetMax函数。
步骤1: 库文件的生成
为叙述方便,在ICC安装目录新建一目录,并将其命名为libtest。
在ICCAVR IDE环境中新建两个文件,分别命名为GetMax.c和GetMax.h,并保存至工作目录中。两文件内容如下所示:
//------GetMax.h的内容如下:------ #ifndef __GETMAX_LIB #define __GETMAX_LIB extern int GetMax( int a, int b ); #endif //------GetMax.c的内容如下:------ #include "GetMax.h" int GetMax( int a, int b ) { return ( (a > b)?a:b ); }执行File菜单下的Compile File...项下的To Object项,将GetMax.c编译生成相应的目标文件GetMax.o 。
执行命令ilibw -a libGetMax.a GetMax.o生成库文件(在当前文件夹中新建txt文档,内容是ilibw -a libGetMax.a GetMax.o然后名字改为lib.bat,然后双击即可)。可执行文件ilibw.exe位于icc安装完后的系统目录(默认安装时在C:\icc)的子目录bin中。为使用方便可将ilibw.exe拷贝至工作目录中使用。至此库文件libGetMax.a已生成,其对应的头文件为GetMax.h 。注意库文件的命名必须以“lib”字样开头,否则在IDE中编译下面的应用范例过程中自动链接时会报错(手动链接除外)。
步骤2:应用范例的编写和编译
在工作目录中建立一个工程Test.prj 。工程Test.prj中包含一个C源程序文件Test.c 。Test.C的源代码如下所示:
//------Test.c的源代码如下:------ #include "GetMax.h" void main( void ) { int Result,Value1,Value2; Value1 = 0x10FF; Value2 = 0x0FFF; Result = GetMax( Value1, Value2); }然后,将前一步骤生成的库文件libGetMax.a拷贝至icc安装完后的系统目录(默认安装时在C:\icc)的子目录lib中。再执行 Project菜单下的Option项,修改Target表单中的Additional Lib项,在文本框中输入GetMax (注意不能写成 libGetMax.a)。
然后拷贝GetMax.h于工作目录
完成上述步骤后,就以编译和调试test.prj 。
这样就可以用自己的ICC库了。
相关文章推荐
- 关于携程瘫痪事件"真相"的5点疑问
- Google Protocol Buffers 概述
- java并发编程汇总
- hdu 2037 今年暑假不AC (java)
- C#读写文本文件的方法
- Mac上Homebrew的使用 (Homebrew 使 OS X 更完整)
- 政府出铁腕治停车难 智能停车成良方?
- 性能测试
- 数博会”为何落户贵州?
- HDU 1969 Pie (二分查找)
- 企业支付宝账号开发接口教程--JAVA-UTF-8
- 能者自答
- java lambda表达式 闭包学习笔记
- Linux流量监控工具 - iftop
- Codeforces Round #302 (Div. 2)C. Writing Code--dp
- C#实现rar压缩与解压缩文件的方法
- 在c#下用opencv(emgecv)做图像处理环境配置
- php异常处理—创建自定义的异常处理器
- 【Hibernate学习笔记-4】在hibernate.cfg.xml中配置C3P0数据源
- Leetcode Combination sum III