服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - dev-c++创建lib(静态链接库)文件的实现步骤

dev-c++创建lib(静态链接库)文件的实现步骤

2022-12-22 15:00nnKevi C/C++

本文主要介绍了dev-c++创建lib(静态链接库)文件的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

虽说dev-c++适合初学者,但是它的功能还是很强大的。那如何用它制作一个lib(静态链接库)呢?

 

第一步:制作静态链接库

1.打开dev-c++,选择“新建-项目”,如下图所示。

dev-c++创建lib(静态链接库)文件的实现步骤

2.选择“Static Library”,并选择编程语言(c和c++无所谓)以及给项目设置名称。

dev-c++创建lib(静态链接库)文件的实现步骤

3.选择你要保存的位置。

dev-c++创建lib(静态链接库)文件的实现步骤

4.在新建的文件里添加函数,我这里添加了两个:一个叫hello,用来弹出一个对话框;一个叫add,返回两个数的和。

dev-c++创建lib(静态链接库)文件的实现步骤

5.保存文件(文件名可以随便选,我这里选择了main.cpp)

dev-c++创建lib(静态链接库)文件的实现步骤

6.点击“编译”按钮。

dev-c++创建lib(静态链接库)文件的实现步骤

编译完成后,可能会出现以下界面:

dev-c++创建lib(静态链接库)文件的实现步骤

这时,有人会觉得很奇怪:“我的程序没问题呀,为什么它报错呢?????”

仔细一看,它只不过是把使用的命令给显示了一遍,而不是报错。

7.在生成的文件中找到一个.a文件(我这里是hello.a,因为项目名是hello,你的可能不一样),这就是生成的静态链接库文件。

dev-c++创建lib(静态链接库)文件的实现步骤

 

第二步:链接静态链接库

库做好了,但是我们编程的时候怎么用它呢?方法就是链接。在自己的代码中链接静态链接库,有两种方法,各有优劣。

方法一:使用项目

1.新建一个console application项目。(不能是源代码,必须是console application,如果你像我一样不喜欢console application,请使用方法二)

dev-c++创建lib(静态链接库)文件的实现步骤

2.选择保存位置。

dev-c++创建lib(静态链接库)文件的实现步骤

3.打开“项目属性 -> 参数”。

dev-c++创建lib(静态链接库)文件的实现步骤

4.点击“加入库或对象”,把刚才的库加进去。

dev-c++创建lib(静态链接库)文件的实现步骤

5.点击“确定”,大功告成!

dev-c++创建lib(静态链接库)文件的实现步骤

优点:

1.只有这个项目的文件才会链接该库,别的文件不会。

2.网上比较常见。

缺点:

1.只能新建console application,不能新建源代码。(说实话,我非常不喜欢console application)

因此,这种方法适合链接不太常用的库。

方法二:修改编译选项

1.将自己的库重命名,命名为“libxxx.a”,例如“libhello.a”。

dev-c++创建lib(静态链接库)文件的实现步骤

2.新建一个源代码(这回不用console application了,我好开心!

dev-c++创建lib(静态链接库)文件的实现步骤

3.打开“工具 -> 编译选项。”

dev-c++创建lib(静态链接库)文件的实现步骤

4.找到“在连接器命令行加入以下命令”,在那个框里加入以下命令(如果框里已经有命令了,就在末尾加一个空格,再输入下面的命令):

-l你的库名(去掉开头的lib和结尾的.a)

举个例子:我的库名是libhello.a(见第1步),那么我应该加上命令:

-lhello

注意,以下3种写法都是错误的:

-llibhello.a
-llibhello
-lhello.a

再比如,你的库名是libtest.a,你应该加上:

-ltest

示例图(以我的库为例):

dev-c++创建lib(静态链接库)文件的实现步骤

能不能在-l和库名之间加一个空格呢?当然可以!

5.还没完!找到“目录 -> 库”。

dev-c++创建lib(静态链接库)文件的实现步骤

6.把你的库的路径添加进去。怎么添加?点击右下角的“浏览”按钮,找到库的路径,点“确定”。

dev-c++创建lib(静态链接库)文件的实现步骤

7.点“添加”,再点“确定”,OK!

dev-c++创建lib(静态链接库)文件的实现步骤

优点:

1.可以新建源代码,而不是我讨厌的console application。。。

缺点:

1.每次会自动链接该库,导致可执行文件体积巨大。

2.网上不常见,遇到了问题很难解决。

因此,这种方法适合经常使用的库。

 

第三步:使用库函数

万事俱备,只欠东风!库也造好了,链接也链接了,就差调用库函数了!怎么调用呢?还是有两种方法。

注意:如果你是在console application中链接静态链接库,则你只能在项目文件中调用库函数;如果你修改了编译选项,则每一个程序都可以调用库函数!

方法一

1.在需要调用库函数的代码里,写出库函数的函数原型。(必须写函数原型,否则会报错!)

dev-c++创建lib(静态链接库)文件的实现步骤

2.直接调用函数即可。(下图为完整代码)

dev-c++创建lib(静态链接库)文件的实现步骤

#include <cstdio>
void hello();
int add(int a,int b);
int main(){
	printf("%d",add(1,2));
	hello();
	return 0;
}

运行效果:

dev-c++创建lib(静态链接库)文件的实现步骤

优点:操作简单。

缺点:只有你自己知道函数原型,如果别人使用此函数,就不得不向你询问函数原型。

因此这种方法适合自己使用库函数。

方法二:

1.把函数原型写在一个头文件里。

dev-c++创建lib(静态链接库)文件的实现步骤

2.引入头文件,就可以使用库函数了!

dev-c++创建lib(静态链接库)文件的实现步骤

优点:别人可以知道函数原型。

缺点:比较麻烦。

因此,这种方法适合共享给别人。

到此这篇关于dev-c++创建lib(静态链接库)文件的实现步骤的文章就介绍到这了,更多相关dev-c++创建lib内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/nnKevi/article/details/122552542

延伸 · 阅读

精彩推荐
  • C/C++opencv帧差法找出相差大的图像

    opencv帧差法找出相差大的图像

    这篇文章主要为大家详细介绍了opencv帧差法找出相差大的图像,包含访问mat的像素值,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙...

    amulet07039502021-08-27
  • C/C++C语言中的隐式函数声明

    C语言中的隐式函数声明

    在c语言里面开来还是要学习c++的编程习惯,使用函数之前一定要声明。不然,即使编译能通过,运行时也可能会出一些莫名其妙的问题。...

    C语言教程网11812021-03-22
  • C/C++C++符号优先级(详细整理)

    C++符号优先级(详细整理)

    C++符号优先级,我详细整理了一下。需要的朋友可以过来参考下。希望对大家有所帮助...

    C++教程网8632021-01-05
  • C/C++C语言实现井字棋详解

    C语言实现井字棋详解

    这篇文章主要为大家介绍了C语言如何实现井字棋,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助...

    Xua30557552022-02-25
  • C/C++C语言由浅入深理解指针

    C语言由浅入深理解指针

    C语言这门课程在计算机的基础教学中一直占有比较重要的地位,然而要想突破C语言的学习,对指针的掌握是非常重要的,本文将具体针对指针的基础做详...

    龟π气功11892022-11-25
  • C/C++基于C++ Lambda表达式的程序优化

    基于C++ Lambda表达式的程序优化

    这篇文章主要介绍了基于C++ Lambda表达式的程序优化的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...

    C++教程网6832021-04-30
  • C/C++C++ delete之静态变量问题详解

    C++ delete之静态变量问题详解

    这篇文章主要为大家详细介绍了C++delete的一些问题,学习如何动态创建对象,动态创建的对象与一般对象的区别,动态创建的对象的初始化以及释放动态分...

    weixin_434365874632022-01-11
  • C/C++C++类继承 继承后函数的值实现详解

    C++类继承 继承后函数的值实现详解

    这篇文章主要介绍了C++类继承 继承后函数的值实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可...

    Anlia9232021-08-03