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文件

使用库函数


相关文章
|
5月前
|
API C++ Windows
Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法
本文介绍Visual C++运行库、.NET Framework和DirectX运行库的作用及常见问题解决方案,涵盖MSVCP140.dll丢失、0xc000007b错误等典型故障的修复方法,提供官方下载链接与系统修复工具使用指南。
1177 2
|
5月前
|
缓存 算法 程序员
C++STL底层原理:探秘标准模板库的内部机制
🌟蒋星熠Jaxonic带你深入STL底层:从容器内存管理到红黑树、哈希表,剖析迭代器、算法与分配器核心机制,揭秘C++标准库的高效设计哲学与性能优化实践。
C++STL底层原理:探秘标准模板库的内部机制
|
5月前
|
Ubuntu API C++
C++标准库、Windows API及Ubuntu API的综合应用
总之,C++标准库、Windows API和Ubuntu API的综合应用是一项挑战性较大的任务,需要开发者具备跨平台编程的深入知识和丰富经验。通过合理的架构设计和有效的工具选择,可以在不同的操作系统平台上高效地开发和部署应用程序。
235 11
|
5月前
|
IDE 编译器 开发工具
msvcp100.dll,msvcp120.dll,msvcp140.dll,Microsoft Visual C++ 2015 Redistributable,Visual C++ 运行库安装
MSVC是Windows下C/C++开发核心工具,集成编译器、链接器与调试器,配合Visual Studio使用。其运行时库(如msvcp140.dll)为程序提供基础函数支持,常因缺失导致软件无法运行。通过安装对应版本的Microsoft Visual C++ Redistributable可解决此类问题,广泛应用于桌面软件、游戏及系统级开发。
668 2
|
6月前
|
并行计算 C++ Windows
|
算法 C++ 容器
C++标准库(速查)总结
C++标准库(速查)总结
356 6
|
存储 编译器 C++
【c++】多态(多态的概念及实现、虚函数重写、纯虚函数和抽象类、虚函数表、多态的实现过程)
本文介绍了面向对象编程中的多态特性,涵盖其概念、实现条件及原理。多态指“一个接口,多种实现”,通过基类指针或引用来调用不同派生类的重写虚函数,实现运行时多态。文中详细解释了虚函数、虚函数表(vtable)、纯虚函数与抽象类的概念,并通过代码示例展示了多态的具体应用。此外,还讨论了动态绑定和静态绑定的区别,帮助读者深入理解多态机制。最后总结了多态在编程中的重要性和应用场景。 文章结构清晰,从基础到深入,适合初学者和有一定基础的开发者学习。如果你觉得内容有帮助,请点赞支持。 ❤❤❤
1399 0
|
JSON C++ 数据格式
C++20 高性能基础库--兰亭集库助力开发者构建高性能应用
这次分享的主题是《高性能基础库--兰亭集库助力开发者构建高性能应用》的实践经验。主要分为三个部分: 1. 业务背景 2. 雅兰亭库架构 3. 业务优化
489 9
|
XML 网络协议 API
超级好用的C++实用库之服务包装类
通过本文对Boost.Asio、gRPC和Poco三个超级好用的C++服务包装类库的详细介绍,开发者可以根据自己的需求选择合适的库来简化开发工作,提高代码的效率和可维护性。每个库都有其独特的优势和适用场景,合理使用这些库可以极大地提升C++开发的生产力。
347 11