- 浏览: 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]
发表评论
-
如何在flex当中使用swc
2012-01-20 01:23 601如何在flex当中使用swc 2 ... -
FLEX与javascript交互
2012-01-20 01:23 522FLEX与javascript交互 2011年03月24日 ... -
如何在Flex中使用Json
2012-01-20 01:23 626如何在Flex中使用Json 2010年09月04日 本 ... -
Flex TXT文件导入
2012-01-20 01:23 677Flex TXT文件导入 2010年09月20日 在上一 ... -
Flex(try-catch-finally)机制
2012-01-20 01:22 645Flex(try-catch-finally)机制 2011 ... -
部分毕业设计题目提前曝光
2012-01-19 09:13 807部分毕业设计题目提前曝光 2011年10月13日 08级 ... -
老产品新扩展
2012-01-19 09:13 2老产品新扩展 2012年01月08日 TLCHAT V5 ... -
基于FMS+FME的直播系统的实现
2012-01-19 09:13 1025基于FMS+FME的直播系统的 ... -
Nutch源代码学习-解读Nutch-运行,爬行过程
2012-01-19 09:13 3Nutch源代码学习-解读Nutch-运行,爬行过程 201 ... -
String in Java(2)
2012-01-17 01:42 567String in Java(2) 2010年07月06日 ... -
Java IO 编程
2012-01-17 01:42 796Java IO 编程 2010年10月30日 Java ... -
vc++ 向其他进程注入代码的三种方法(转)
2012-01-17 01:42 702vc++ 向其他进程注入代码的三种方法(转) 2010年06 ... -
如何做好2003服务器安全策略
2012-01-17 01:42 699如何做好2003服务器安全策略 2011年05月25日 ... -
可怜滴小C盘呀,清理清理你
2012-01-17 01:42 655可怜滴小C盘呀,清理清理你 2011年08月30日 在 ... -
c库函数qsort使用方法实例
2012-01-15 20:57 658c库函数qsort使用方法实例 2010年01月03日 ... -
九标海外项目负责人爬进!
2012-01-15 20:57 579九标海外项目负责人爬 ... -
[转]GCC笔记
2012-01-15 20:57 554[转]GCC笔记 2010年03月23日 The His ... -
系统调用
2012-01-15 20:56 962系统调用 2009年08月26日 系统调用在用户空间 ...
相关推荐
本文叫大家如何在ICC中制作和使用自定义C库文件,让自已写的机密头文件不让别人看到,但可以让别人调用
本资源包含三项文件 1.setup.exe 2.画图归属于博客作者:沐月Ansel.msi 3.使用前请看说明.txt 基本功能: (1) 实现自由绘图 (2) 实现椭圆、直线和矩形的绘制 (3) 实现圆的绘制 (4) 实现扇形和圆弧的绘制 (5...
可以自己添加蜂窝背景,可以自定义蜂窝链接的指向, 并且可以用C语言自动生成配置文件,用rainmeter一件加载就可以使用自己创作的蜂窝. 压缩包内附带三款蜂窝, 并且附带自定义蜂窝的教程.
这是 ARM CMSIS DSP库到PULPino微控制器(带有自定义扩展的 RISC-V RV32IMFD ISA)的端口。该项目是 Google Summer of Code (GSoC) 2017 的一部分 文件和函数的名称从 arm 重命名为 riscv。例如arm_add_q15更改为...
一般而言,php速度已经比较快,但是,对于一些较高级开发者而言,如果想要追求更...程序如果是和动态连接库进行链接(link),程序运行时需要能够找到相应的动态链接库文件。 使用动态链接库存编译的程序在运行时要求用户
1、可以自定义一种语言版本,比如制作中文网站/英文网站/日文网站。 方法:可以通过修改/xml下、/admin/xml、/template文件夹里所有保存页面文字信息的文件,达到您想要的语言版本。 2、程序和美工完全分离。 您可以...
使用 C 和 C++ 以外的语言 代码样例 9. Subversion 完全参考 Subversion 命令行客户端:svn svn选项 svn子命令 svnadmin svnadmin选项 svnadmin子命令 svnlook svnlook选项 svnlook子命令 svnsync svnsync选项 ...
4、usbd_storage_msd.c中block_size和block_num可以自定义设置,用于定义U盘大小; 5、diskio.c中的FLASH_SECTOR_SIZE要和配置文件ffconf.h中_MAX_SS相同,用于读取音乐; 6、其他异常问题可网上搜索; 7、代码亲测...
本文档适合嵌入式初学者练习制作linux系统上的最小根文件系统。 rootfs的制作 1 1) 创建dev/ sys/ etc/ root/ home/ proc/ tmp/等文件夹 2 2) 创建设备文件 2 3) 设置init启动配置信息。 3 1) 配置profile文件...
Teensy3.6-示例Kicad文件根据官方的Teensy原理图制作了一个自定义的Teensy 3.5或3.6,但公开了用于测试的所有引脚。 不路由第二个USB端口和SD。 使用常用的LM1117-3.3供电,并使用廉价的USB C型插座,而不是USB ...
软件介绍: iphone铃声制作软件能够将其他音频文件转换为.m4r格式的iphone铃声。iphone铃声制作软件安装说明:解压后先打开x-iphone-ringtone-maker...可以设置声音谈入或设置铃声的起点和终点,自定义选择转换范围。
其实制作横向滚动的不得不说另一个控件,就是Google官方最近新增加的RecyclerView,据说是ListView的升级版本,本篇文章,首先介绍RecyclerView的用法,然后经行一定的分析;最后自定义一下RecyclerView实现我们需要...
我的自定义主题 这个主题是我自己的个人主题。 这是我做过的第一个主题,是为了满足我自己的需要而制作的。 因此,我不能保证该主题可以与您使用的...和JSON文件 姓名 该主题以我的在线用户名Valatos命名。 据我所知
打开功能是专门用于对C语言文件自动提取显示所需要的汉字,进行点阵码数据转换的, 在您的C语言程序中,有一点需要特别留意:您的注解中请不要使用双引号,否则会引起 提取错误。 软件包中的文件ee.c作为一个简单...
使用EasyCHM只需要三个步骤就可以完成CHM的制作:1、用户指定一个目录,EasyCHM会自动导入全部目录及文件;2、设置CHM编译选项;3、开始制作。EasyCHM非常适合个人和单位制作高压缩比的带有全文检索及高亮显示搜索...
写编辑 由 Ace Jeangle 博士 ( ) 根据 Tom Kazimiers ( ) 的脚本创建 通过给定的 I2C 总线将 EDID 信息写入监视器。 ######脚本需要 root 权限!...将带有二进制 EDID 数据的文件 edid.bin 写入 I2C-Bus #3
4.注册表设置功能可以方便地设置在安装过程中对注册表的操作,如:设置注册表信息、读出注册表信息、删除注册表信息、覆盖注册表信息、有条件地执行注册表对象、可以方便的让一个应用程序和一种文件类型进行关联。...
Godot Mono自定义资源注册表插件这是一个Godot C#插件,用于注册Godot的...如何使用添加/删除自定义C#资源/节点要添加自定义C#资源,请执行以下操作: 在扩展Godot.Resource的新文件中创建一个C#类。 此类必须
一个简单的XIB扩展,可以使用IBInspectable来制作圆形的自定义按钮,而无需编写一行代码。 IBInspectable属性提供对旧功能的新访问:用户定义的运行时属性。 当前可以从身份检查器访问,这些属性自从以前就可用...
用例无需构建步骤即可执行流程和打字稿代码使用您喜欢的工具和npm软件包快速制作创意原型,而无需npm install 将您的node_modules打包为内置组件,并在CI中运行脚本,而无需安装node_modules试试看要尝试基于不包含...