码迷,mamicode.com
首页 > 编程语言 > 详细

codeblocks创建和使用静态库(C语言)

时间:2014-09-10 12:19:30      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:http   io   使用   ar   for   文件   sp   代码   on   

静态库  (扩展名为 .a 或 .lib) 是包含函数的文件,用于在link阶段整合执行程序,动态链接库(扩展名  .dll)是不在link阶段整合进执行程序中的。

DLL文件在执行阶段动态调用

下面我们将用免费的开发工具CodeBocks开发静态库

创建静态库

启动Codeblocks并创建一个类型为 "Static Library" (File/New/Project/Static Library/Go)的项目。

 bubuko.com,布布扣

给项目取一个名字("malibrairie" for instance ), 并分配一个目标目录("C:/essai" for instance )

 bubuko.com,布布扣

删除main.cpp文件中的默认内容。按照下面的内容输入到程序中。

void cinq(int *i)
{
int n;
n=*i;n=5*n;
*i=n;
}

bubuko.com,布布扣 

选择"Build/Run"菜单。

 bubuko.com,布布扣

Codeblocks立即生成库文件到 "C:/essai/malibrairie" 目录并取名 "libmalibrairie a"。

 bubuko.com,布布扣

Codeblocks 和 Devcpp 生成扩展名为 ".a" 的库文件,Visual Studio将生成扩展名为 ".lib"的库文件。

我们下面使用这个库文件。

库文件 "libmalibrairie.a" 已经被创建。

Use the static library

Create a new project with the type "Win32 GUI".

bubuko.com,布布扣 

选择应用程序类型 "Frame based"。

bubuko.com,布布扣 

取名 ("monprogramme" ) 并选定项目目录 ("C:/essai" )。

bubuko.com,布布扣 

删除main.cpp默认的代码然后将代码替换为下面的代码用于测试我们的静态库。

#include "windows.h"
extern "C" void cinq (int *);
int APIENTRY WinMain(HINSTANCE h1,HINSTANCE h2,LPSTR l,int n)
{
int x;
char texte[80];
x=2;
cinq(&x);
wsprintf(texte,"%d",x);
MessageBox(NULL,texte,"",MB_OK);
return 0;
}

 bubuko.com,布布扣

通常, Codeblocks并不知道库文件被使用和它的位置,我们必须声明库文件,让它在链接的时候不会出错。选择菜单 "Project/Build options/Linker Settings" 添加"libmalibrairie.a"库文件。(亲自测试,需要在linker搜索目录添加库文件的目录)。

 bubuko.com,布布扣

点击 "Build/Build and run"。程序正常运行。

bubuko.com,布布扣

在apue中使用-lapue库的时候,直接写成apue。。因为该静态库文件已经加入到/usr/lib/libapue.a中了。。

codeblocks创建和使用静态库(C语言)

标签:http   io   使用   ar   for   文件   sp   代码   on   

原文地址:http://www.cnblogs.com/wuchanming/p/3964035.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!