C/C++ 静态库(lib)的概念和使用方法

简介: C/C++ 静态库(lib)的概念和使用方法

前言

静态库的学习

本节为Visual Studio 2022的编译器


以下是本篇文章正文内容,下面案例可供参考

一、静态库的作用?


静态库是指在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中, 连接器 将从库文件取得所需的 代码 ,复制到生成的 可执行文件 中的这种库。

在一个软件中可以有很多lib文件 如:

9419ef2a3bab415489994531bddfcbc6.png

后缀为.lib的都是

二、lib的创建使用

1.创建lib项目

点击Windows桌面向导->应用程序类型->静态库->空项目

2.编写lib代码

创建源文件demo.cpp© 和 头文件demoh.h

在头文件中写:防止头文件重复包含:

#pragma once
#ifndef demoh_H
#define demoh_H
#endif 

#ifndef demoh_H~#define demoh_H之间写函数和变量或对象

#pragma once
#ifndef demoh_H
void add(int a,int b);//函数
class student
{
public:
  static int stu;
};
#define demoh_H
#endif 

打开源文件demo.cpp©中

包含头文件 demoh.h

在源文件中写函数主体

#include "demoh.h"
int add(int a, int b)
{
  return a + b;
}
int student::stu = 188;

点击重新生成项目 也可以点运行

如果是运行,出现一下是正常的:


57a36454631a4d748c3d1c6f3d954a00.png

点击确定

3.使用lib文件

创建新的项目

设为启动项

添加源文件cpp

如何包含lib中的头文件?

1.使用相对路径:#include “…/你的lib文件/头文件”

2.使用绝对路径: 打开资源管理器->打开头文件所在的文件夹->把他的地址写进去->“/”需要两个

在控制台项目->属性->链接器->常规->附加库目录->写lib在的文件的绝对路径/相对路径

打开lib文件

+#pragma comment(lib,"Project1.lib")

使用

#include <iostream>
#include "../Project1/demoh.h"//包含库头文件
using namespace std;
#pragma comment(lib,"Project1.lib")//打开库
int main()
{
  cout<<add(1, 10)<<endl;//使用函数
  return 0;
}

运行:


1e0f42b83c2748c4af8bcff44b3f2866.png

总结:

创建一个静态库

添加一个头文件

添加头文件重复包含#pragma once

#ifndef 标头_H


//函数


#define 标头_H

#endif


添加cpp 在里面包含头文件 写函数声明


编译,添加另外一个项目

包含头文件 “…/”相对路径 打开库头文件

在 项目->属性->连接器中->常规->附加库目录->库文件的决定路径/相对路径

#pragma comment(lib,“1.lib”)//打开lib文件

使用库函数


相关文章
|
8天前
|
并行计算 C++ Windows
|
11月前
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
260 6
|
11月前
|
存储 算法 C++
C++ STL 初探:打开标准模板库的大门
C++ STL 初探:打开标准模板库的大门
237 10
|
6月前
|
存储 编译器 C++
【c++】多态(多态的概念及实现、虚函数重写、纯虚函数和抽象类、虚函数表、多态的实现过程)
本文介绍了面向对象编程中的多态特性,涵盖其概念、实现条件及原理。多态指“一个接口,多种实现”,通过基类指针或引用来调用不同派生类的重写虚函数,实现运行时多态。文中详细解释了虚函数、虚函数表(vtable)、纯虚函数与抽象类的概念,并通过代码示例展示了多态的具体应用。此外,还讨论了动态绑定和静态绑定的区别,帮助读者深入理解多态机制。最后总结了多态在编程中的重要性和应用场景。 文章结构清晰,从基础到深入,适合初学者和有一定基础的开发者学习。如果你觉得内容有帮助,请点赞支持。 ❤❤❤
840 0
|
8月前
|
JSON C++ 数据格式
C++20 高性能基础库--兰亭集库助力开发者构建高性能应用
这次分享的主题是《高性能基础库--兰亭集库助力开发者构建高性能应用》的实践经验。主要分为三个部分: 1. 业务背景 2. 雅兰亭库架构 3. 业务优化
209 9
|
8月前
|
XML 网络协议 API
超级好用的C++实用库之服务包装类
通过本文对Boost.Asio、gRPC和Poco三个超级好用的C++服务包装类库的详细介绍,开发者可以根据自己的需求选择合适的库来简化开发工作,提高代码的效率和可维护性。每个库都有其独特的优势和适用场景,合理使用这些库可以极大地提升C++开发的生产力。
189 11
|
11月前
|
存储 程序员 C++
C++常用基础知识—STL库(2)
C++常用基础知识—STL库(2)
152 5
|
11月前
|
存储 自然语言处理 程序员
C++常用基础知识—STL库(1)
C++常用基础知识—STL库(1)
181 1
|
12月前
|
编译器 API C语言
超级好用的C++实用库之跨平台实用方法
超级好用的C++实用库之跨平台实用方法
137 6
|
12月前
|
缓存 网络协议 Linux
超级好用的C++实用库之套接字
超级好用的C++实用库之套接字
118 1