`
fdb524se
  • 浏览: 11818 次
社区版块
存档分类
最新评论

制作和使用自定义C库文件

阅读更多

制作和使用自定义C库文件
2009年07月15日
  目标
  1.制作一个库文件libGetMax.a ,其中包含一个外部函数GetMax 。 函数GetMax的作用是判断两个输入参数(int型)中的最大值,并返回最大值。
  2.制作一个应用范例,使用库libGetMax.a中包含的GetMax函数。
  

  库文件的生成
    为叙述方便,请在C盘根目录中新建一目录,并将其命名为libtest。以下将C:\libtest简称为工作目录。
    在ICCAVRIDE环境中新建两个文件,分别命名为 GetMax.c 和 GetMax.h,并保存至工作目录中。两文件内容如下所示:
  [b][b]//------GetMax.h的内容如下:------
  #ifndef__GETMAX_LIB
  #define__GETMAX_LIB
  externintGetMax(inta,intb);
  #endif
  
[/b][/b][b][b]//------GetMax.c的内容如下:------
  #include"GetMax.h"
  intGettMax(inta,intb)
  {
  return((a>b)?a:b);
  }
  
[/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中编译下面的应用范例过程中自动链接时会报错(手动链接除外)。
  [/b]应用范例的编写和编译
    在工作目录中建立一个工程Test.prj。工程Test.prj中包含一个C源程序文件Test.c。Test.C的源代码如下所示:
  [b][b]//------Test.c的源代码如下:------
  #include"GetMax.h"
  voidmain(void)
  {
  intResult,Value1,Value2;
  Value1=0x10FF;
  Value2=0x0FFF;
  Result=GetMax(Value1,Value2);
  }
  
[/b]  然后,将前一步骤生成的库文件libGetMax.a拷贝至icc安装完后的系统目录(默认安装时在C:\icc)的子目录lib中。再执行Project菜单下的Option项,修改Target表单中的AdditionalLib项,在文本框中输入GetMax(注意不能写成libGetMax.a)。
    完成上述步骤后,就以编译和调试test.prj。
    如果在其它工程中需要使用上述库函数GetMax,只需拷贝所需的GetMax.h和libGetMax.a,并进行相应配置就可以了。
    也可以在已有的库中增加一些自定义的函数。详细参考ICCAVRIDE中的在线帮助。
  [/b]
分享到:
评论

相关推荐

    在ICC中制作和使用自定义C库文件

    本文叫大家如何在ICC中制作和使用自定义C库文件,让自已写的机密头文件不让别人看到,但可以让别人调用

    使用C语言+EasyX库完成画图软件的制作,功能强悍

    本资源包含三项文件 1.setup.exe 2.画图归属于博客作者:沐月Ansel.msi 3.使用前请看说明.txt 基本功能: (1) 实现自由绘图 (2) 实现椭圆、直线和矩形的绘制 (3) 实现圆的绘制 (4) 实现扇形和圆弧的绘制 (5...

    rainmeter蜂窝自定义制作工具

    可以自己添加蜂窝背景,可以自定义蜂窝链接的指向, 并且可以用C语言自动生成配置文件,用rainmeter一件加载就可以使用自己创作的蜂窝. 压缩包内附带三款蜂窝, 并且附带自定义蜂窝的教程.

    用于 PULPino微控制器 的 CMSIS DSP 库_C语言_代码_相关文件_下载

    这是 ARM CMSIS DSP库到PULPino微控制器(带有自定义扩展的 RISC-V RV32IMFD ISA)的端口。该项目是 Google Summer of Code (GSoC) 2017 的一部分 文件和函数的名称从 arm 重命名为 riscv。例如arm_add_q15更改为...

    PHP中调用C/C++制作的动态链接库的教程

    一般而言,php速度已经比较快,但是,对于一些较高级开发者而言,如果想要追求更...程序如果是和动态连接库进行链接(link),程序运行时需要能够找到相应的动态链接库文件。 使用动态链接库存编译的程序在运行时要求用户

    通用企业网站系统V3.0语言/美工自定义/限制版

    1、可以自定义一种语言版本,比如制作中文网站/英文网站/日文网站。 方法:可以通过修改/xml下、/admin/xml、/template文件夹里所有保存页面文字信息的文件,达到您想要的语言版本。 2、程序和美工完全分离。 您可以...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    使用 C 和 C++ 以外的语言 代码样例 9. Subversion 完全参考 Subversion 命令行客户端:svn svn选项 svn子命令 svnadmin svnadmin选项 svnadmin子命令 svnlook svnlook选项 svnlook子命令 svnsync svnsync选项 ...

    stm32f2/stm32f4结合w25q64制作的U盘源码

    4、usbd_storage_msd.c中block_size和block_num可以自定义设置,用于定义U盘大小; 5、diskio.c中的FLASH_SECTOR_SIZE要和配置文件ffconf.h中_MAX_SS相同,用于读取音乐; 6、其他异常问题可网上搜索; 7、代码亲测...

    rootfs的制作.docx

    本文档适合嵌入式初学者练习制作linux系统上的最小根文件系统。 rootfs的制作 1 1) 创建dev/ sys/ etc/ root/ home/ proc/ tmp/等文件夹 2 2) 创建设备文件 2 3) 设置init启动配置信息。 3 1) 配置profile文件...

    Teensy3.6-example:根据官方的Teensy示意图,使用Kicad文件制作自定义的Teensy 3.5或3.6。 经过测试和验证

    Teensy3.6-示例Kicad文件根据官方的Teensy原理图制作了一个自定义的Teensy 3.5或3.6,但公开了用于测试的所有引脚。 不路由第二个USB端口和SD。 使用常用的LM1117-3.3供电,并使用廉价的USB C型插座,而不是USB ...

    iphone铃声制作软件简体中文版.zip

    软件介绍: iphone铃声制作软件能够将其他音频文件转换为.m4r格式的iphone铃声。iphone铃声制作软件安装说明:解压后先打开x-iphone-ringtone-maker...可以设置声音谈入或设置铃声的起点和终点,自定义选择转换范围。

    Android 使用自定义RecyclerView控件实现Gallery效果

    其实制作横向滚动的不得不说另一个控件,就是Google官方最近新增加的RecyclerView,据说是ListView的升级版本,本篇文章,首先介绍RecyclerView的用法,然后经行一定的分析;最后自定义一下RecyclerView实现我们需要...

    valatos-theme:Visual Studio Code的自定义主题

    我的自定义主题 这个主题是我自己的个人主题。 这是我做过的第一个主题,是为了满足我自己的需要而制作的。 因此,我不能保证该主题可以与您使用的...和JSON文件 姓名 该主题以我的在线用户名Valatos命名。 据我所知

    lcd汉字取模软件

    打开功能是专门用于对C语言文件自动提取显示所需要的汉字,进行点阵码数据转换的, 在您的C语言程序中,有一点需要特别留意:您的注解中请不要使用双引号,否则会引起 提取错误。 软件包中的文件ee.c作为一个简单...

    EASY CHM CHM制作工具

    使用EasyCHM只需要三个步骤就可以完成CHM的制作:1、用户指定一个目录,EasyCHM会自动导入全部目录及文件;2、设置CHM编译选项;3、开始制作。EasyCHM非常适合个人和单位制作高压缩比的带有全文检索及高亮显示搜索...

    write-edid:将自定义 EDID 数据写入 HDMI 适配器(Linux、I2C)

    写编辑 由 Ace Jeangle 博士 ( ) 根据 Tom Kazimiers ( ) 的脚本创建 通过给定的 I2C 总线将 EDID 信息写入监视器。 ######脚本需要 root 权限!...将带有二进制 EDID 数据的文件 edid.bin 写入 I2C-Bus #3

    Windows安装包制作工具NextInstaller4.08.zip

    4.注册表设置功能可以方便地设置在安装过程中对注册表的操作,如:设置注册表信息、读出注册表信息、删除注册表信息、覆盖注册表信息、有条件地执行注册表对象、可以方便的让一个应用程序和一种文件类型进行关联。...

    Godot-Mono-CustomResourceRegistry:Godot插件,注册自定义C#资源和节点

    Godot Mono自定义资源注册表插件这是一个Godot C#插件,用于注册Godot的...如何使用添加/删除自定义C#资源/节点要添加自定义C#资源,请执行以下操作: 在扩展Godot.Resource的新文件中创建一个C#类。 此类必须

    APRoundedButton:一个简单的XIB扩展,可以制作圆形的自定义按钮,而无需编写一行代码!

    一个简单的XIB扩展,可以使用IBInspectable来制作圆形的自定义按钮,而无需编写一行代码。 IBInspectable属性提供对旧功能的新访问:用户定义的运行时属性。 当前可以从身份检查器访问,这些属性自从以前就可用...

    xode:创建具有其他功能的自定义节点二进制文件

    用例无需构建步骤即可执行流程和打字稿代码使用您喜欢的工具和npm软件包快速制作创意原型,而无需npm install 将您的node_modules打包为内置组件,并在CI中运行脚本,而无需安装node_modules试试看要尝试基于不包含...

Global site tag (gtag.js) - Google Analytics