元器件交易网-中发网全新升级平台
关注我们:
首页 > 技术资料 > 正文

如何使用与制作自定义C语言库文件

  目标

  1.制作一个库文件libGetMax.a ,其中包含一个外部函数GetMax 。 函数GetMax的作用是判断两个输入参数(int型)中的最大值,并返回最大值。

  2.制作一个应用范例,使用库libGetMax.a中包含的GetMax函数。

  库文件的生成

  为叙述方便,请在C盘根目录中新建一目录,并将其命名为libtest。以下将C:libtest简称为工作目录。

  在ICCAVRIDE环境中新建两个文件,分别命名为 GetMax.c 和 GetMax.h,并保存至工作目录中。两文件内容如下所示:

  //------GetMax.h的内容如下:------

  #ifndef__GETMAX_LIB

  #define__GETMAX_LIB

  externintGetMax(inta,intb);

  #endif

  //------GetMax.c的内容如下:------

  #include"GetMax.h"

  intGettMax(inta,intb)

  {

  return((a>b)?a:b);

  }

  执行File菜单下的 CompileFile... 项下的 ToObject 项,将 GetMax.c 编译生成相应的目标文件GetMax.o 。

  执行命令ilibw-alibGetMax.aGetMax.o生成库文件。可执行文件ilibw.exe位于icc安装完后的系统目录(默认安装时在C:icc)的子目录bin中。为使用方便可将ilibw.exe拷贝至工作目录中使用。至此库文件libGetMax.a已生成,其对应的头文件为GetMax.h 。注意库文件的命名必须以“lib”字样开头,否则在IDE中编译下面的应用范例过程中自动链接时会报错(手动链接除外)。

  应用范例的编写和编译

  在工作目录中建立一个工程Test.prj。工程Test.prj中包含一个C源程序文件Test.c。Test.C的源代码如下所示:

  //------Test.c的源代码如下:------

  #include"GetMax.h"

  voidmain(void)

  {

  intResult,Value1,Value2;

  Value1=0x10FF;

  Value2=0x0FFF;

  Result=GetMax(Value1,Value2);

  }

  然后,将前一步骤生成的库文件libGetMax.a拷贝至icc安装完后的系统目录(默认安装时在C:icc)的子目录lib中。再执行Project菜单下的Option项,修改Target表单中的AdditionalLib项,在文本框中输入GetMax(注意不能写成libGetMax.a)。

  完成上述步骤后,就以编译和调试test.prj。

  如果在其它工程中需要使用上述库函数GetMax,只需拷贝所需的GetMax.h和libGetMax.a,并进行相应配置就可以了。

  也可以在已有的库中增加一些自定义的函数。详细参考ICCAVRIDE中的在线帮助。

  • 微笑
  • 流汗
  • 难过
  • 羡慕
  • 愤怒
  • 流泪