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了。这章的内容也许对许多的程序员都有些陌生,我实在担心各位会在实践中会碰到问题,所以在这里还是希望各位在遇到困难时多到这里提问。最后还是我的一句名言:不论是程序还是思想唯有通过不断的交流才能愈加完善。(看过《古畑任三郎》么?主角总喜欢在发表观点后,说一句:我是古畑任三郎。感觉我也和他一样了。不过,这的确是一部不错的影片。至少比国内许多侦探片都好,没有额外的剧情,没有你你我我的爱情。纯粹是从一个破案的角度来拍摄的。推荐各位看看。)

如何制作及链接静态链接库。相关推荐

  1. 制作自己的静态链接库第九章 制作自己的动态链接库

    Dev-Cpp/Mingw32 环境介绍(5) 上文回顾: 上文<Dev-Cpp/Mingw32 环境介绍(4)>我们介绍了如何使用 静态连接库.今天我们介绍如何制作自己的Mingw32的 ...

  2. 链接 动态链接 静态链接

    要想了解底层,链接是一个不得不过的一关,我总结了下学习的心得,首先要了解链接器到底是如何工作的,链接器分为两类,一个是静态链接,一个是动态链接,先来讲解静态链接,静态链接要干两件事: 符号解析 目标文 ...

  3. 静态链接库、动态链接库和动态加载库

    前言 静态库是obj文件的一个集合(目标文件中通常仅解析了文件内部的变量和函数,对于引用的函数和变量还没有解析,这需要将其他已经编写好的目标文件引用进来,将没有解析的函数和变量进行解析,通常引用的目标 ...

  4. 嵌入式学习笔记之二(静态链接与动态链接)

    要了解静态链接与动态链接,首先要了解什么是静态链接和动态链接,这一部分这里不做讲解,可以去度娘查找. 1.静态链接 静态链接通过静态库进行链接,生成的目标程序中包含运行需要的所有库,可以直接运行,不过 ...

  5. COM编程之五 动静态链接

    [1]静态链接 静态链接是指由链接器在链接时将库的内容加入到可执行程序中的做法. 链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序. 函数和数据被编译 ...

  6. c++定义一个动态全局变量_静态链接与动态链接的宏观概述及微观详解

    静态链接与动态链接的宏观概述及微观详解 第一部分 宏观概述 1. 静态链接 静态链接就是在程序运行前,链接器通过对象文件中包含的重定位表,完成所有重定位操作,并最终形成一个在运行时不需要再次进行依赖库 ...

  7. 【计算机基础】静态链接与动态链接

    文章目录 一.前言 二.编译 三.链接 1. 静态链接 2. 动态链接 3. 总结 四.库 参考链接 一.前言 一段代码从文本编辑器上产生到最终能够在机器上运行,经历了非常多的阶段,概括而言,至少包含 ...

  8. 深入浅出静态链接和动态链接

    作为一名C/C++程序员,对于编译链接的过程要了然于胸.首先大概介绍一下,编译分为3步,首先对源文件进行预处理,这个过程主要是处理一些#号定义的命令或语句(如宏.#include.预编译指令#ifde ...

  9. 静态链接和动态链接优缺点

    一.静态链接 静态链接 :不同的程序开发者和部门能够相对独立地开发和测试自己的程序模块,大大促进了程序开发效率. 优点: 代码装载速度快,执行速度略比动态链接库快: 只需保证在开发者的计算机中有正确的 ...

最新文章

  1. python安装modify setup选哪-python 之禅 import this
  2. hibernate中SessionFactory,Session的理解?
  3. Oracle 11gR2 RAC恢复OCR和VOTE DISK
  4. MNTD论文修改20211114(Y Zhou)
  5. MaterialDesign之NavigationView和DrawerLayout实现侧滑菜单栏
  6. 图形算法 - 模糊函数比较,Blur Function Compare。
  7. 良心高效,3款超级好用的PC端软件,让你找不到拒绝的理由
  8. FineUIMvc随笔(5)UIHelper是个什么梗?
  9. Android 系统(44)---多语言
  10. iOS MVVM + RxSwift 关键词zip 的调用时机问题
  11. Android-蓝牙的网络共享与连接分析
  12. Eclipse开发Android的安装配置。
  13. 华为鸿蒙到底是不是安卓系统套了个壳?
  14. Excel-旋风图制作
  15. Altium Designer——PCB绘制
  16. SMBIOS信息概述 – DMI
  17. 腾讯云-轻量应用服务器部署Springboot项目+后台持续运行
  18. HashMap 的长度为什么是 2 的幂次方
  19. 计算机圣诞节教案,幼儿园小班圣诞节教案
  20. Photoshop 2021 Win10系统总安装失败,打不开,501错误等,如何解决安装教程!

热门文章

  1. 计算机组成原理第二章:运算方法和运算器
  2. PowerBI的中国地图制作流程
  3. 7.3 进程管理之暂停、归档和策略
  4. Java项目:ssm学生综合素质评价系统
  5. 中国整形外科医院发展规模分析:诊疗人次数为96万人,同比减少5.46%[图]
  6. HashMap 与 TreeMap的区别
  7. CapsNet(Capsule Network)——胶囊网络原理
  8. 【模型加速】自定义TensorRT NMS3D插件(1)
  9. 最全word排版技巧汇总,千万不要错过!
  10. 将DWG文件批量转换为JPG文件