现在的位置: 首页 > 综合 > 正文

Lib 静态链接库 -1

2013年12月11日 ⁄ 综合 ⁄ 共 2107字 ⁄ 字号 评论关闭

1.静态链接库的生成

在VC++6.0中新建项目的Project选项卡中选择Win32 Static Library,将原文件及头文件添加到相应的文件夹中,编译链接一下,如果没有错误就会自动生成.lib文件了。

2.静态链接库的链接

将下列语句添加到头文件中:

#pragma comment(lib,"XXX.lib")

之前要确认XXX.lib是否在当前的目录下,或者在VC指定的LIB库的路径中。你也可以手动添加自己的LIB库的路径,方法如下:

工具--〉选项--〉Directory --〉 在Include file中添加include 头文件的路径

                                                在Library file中添加LIB库的路径。

 

 

然后再像上边那样写,就不用担心路径的问题啦……

当然,头文件还是要包含的啊。

3、在Linux中如何生成:

制作自己的静态链接库[转载]

原文地址:http://blog.discloser.net/user1/2521/archives/2005/3756.shtml
  这是第八章,八这个数字很多人都喜欢。我也一样。(感觉好迷信啊。)这一章我们要来制作静态链接库,我相信各位一定会很高兴的。
  首先我先简单介绍一下静态链接库的作用。我们知道,C/C++程序生成目标代码的过程有,编写代码,编译代码,连接代码,生成目标代码。在连接代码的时候,会将编译后的二进制代码连接成目标代码。但是,有些时候。我们想让程序导入必要的代码,而不想导入无用的代码到我们的程序中。我们该如何呢?很简单,使用静态连接库。使用它我们就可以实现将在程序中使用的函数导入的目的。
  下面我们来一步步的学做静态链接库并且学会如何使用。
  我们现在先写一段代码,你可以用Dev也可以用记事本也可以用任何你喜欢的文本编辑器。像我就比较喜欢vi或者emacs作为平时的文本编辑器。话说远了,现在言规正传。我们写下下面的代码。
//HelloWorld.c
#i nclude
void HelloWorld(void)
{
        printf("Hello World");
}
上面那段C代码各位应该很熟悉的吧,那么经典的Hello World好让我怀念啊。保存为HelloWorld.c以后我们就开始生成了。
首先,我们先编译HelloWorld.c
gcc -c HelloWorld.c -o HelloWorld.o
这样我们得到一个二进制的文件HelloWorld.o
接着我们生成静态库。
ar cqs libHelloWorld.a HelloWorld.o
这样我们党额静态链接库就好了。如果有需要可以将其他的二进制文件名加HelloWorld.o的后面将他们连接成一个静态链接库。另外,生成的静态库文件名必须为lib*.a
好了,现在我们来使用我们的库吧。
接下来,我们为了能够使用方便,写一个如下头文件。
//HelloWorld.h
void HelloWorld(void);
接着我们开始使用我们刚才生成的静态库。写一个main.c的文件。
//main.c
#i nclude "HelloWorld.h"
int main(void)
{
        HelloWorld();
        return(0);
}
使用gcc编译,假设我们这里所有的文件都保存在同一个目录下。
gcc -c main.c -o main.o
然后我们连接程序。
gcc main.o -o main.exe -L"./" -lHelloWorld
如果顺利我们会得到一个main.exe的文件。
在控制台下输入main.exe或者main就可以出现 Hello World 这组单词。
看了上面的文章是否很兴奋想要生成自己的静态链接库?其实,我个人觉得mingw32生成静态链接库要比VC生成的简单。不知道你有没有这样的感觉。
当然,如果你要在Dev下使用静态连接库,也是可以的。方法我在上一章已经说过了。只是,如果你要使用自己的库必须设置路径。
只要在连接器参数中添加 -L"你的库的所在的文件夹" 或者 将你的库保存到Dev安装目录中的lib目录中。
好了,本文就介绍到这里。如果有什么问题,可以在这里留言。
问外音:
这篇文章其实我真的很喜欢,不是文章喜欢,而是内容很喜欢。不知道各位如何想。这里介绍了一个生成静态库的方法,感觉比VC生成的要简单。其实在gcc的Linux平台下生成动态连接库还要比VC下生成不知道要简单多少倍了。如果说Win32中用于开发最好的平台是win2000那么,在那么x86系统中用于开发的平台莫过于Linux了。这章的内容也许对许多的程序员都有些陌生,我实在担心各位会在实践中会碰到问题,所以在这里还是希望各位在遇到困难时多到这里提问。最后还是我的一句名言:不论是程序还是思想唯有通过不断的交流才能愈加完善。(看过《古畑任三郎》么?主角总喜欢在发表观点后,说一句:我是古畑任三郎。感觉我也和他一样了。不过,这的确是一部不错的影片。至少比国内许多侦探片都好,没有额外的剧情,没有你你我我的爱情。纯粹是从一个破案的角度来拍摄的。推荐各位看看。)

抱歉!评论已关闭.