C++静态链接库的生成以及使用

目录


一.前言

这篇文章简单讨论一下VS如何生成和使用C++静态链接库,示例使用VS2022环境。

二.生成静态链接库

先创建C++项目-静态库

然后将默认生成的.h和.cpp文件清理干净,当然你也可以选择保留。

然后创建需要的.h和.cpp文件。

看下代码

cpp 复制代码
//lib_demo.h

#ifndef LIB_DEMO_H
#define LIB_DEMO_H

#include<string>

class LibDemo
{
public:
	LibDemo(void) = default;
	~LibDemo(void) noexcept = default;
	void Print(const std::string& msg);
};

#endif // !LIB_DEMO_H
cpp 复制代码
//lib_demo.cpp

#include"lib_demo.h"

#include<iostream>

void LibDemo::Print(const std::string& msg)
{
	std::cout << "msg:" << msg << std::endl;
}

很简单的代码,就是提供一个打印字符串的接口。编译一下,但是这个时候你会发现项目不能编译。

报错

这是因为清理了生成的默认文件,需要在项目属性-C/C+±预编译头-预编译头,改为"不使用预编译头"就可以了。

编译生成了lib_demo.lib,这样静态链接库生成就是完成了。

三.使用静态链接库

我们看一下怎么使用静态链接库,创建C++项目-空项目,编写exe程序,这个exe程序会调用静态链接库。

看下代码

cpp 复制代码
//main.cpp

#include<string>

#include"lib_demo.h"

int main(int argc, char* argv[])
{
	LibDemo libDemo;
	std::string strMsg("exe_demo");

	libDemo.Print(strMsg);

	return 0;
}

其实就是很简单的代码。

执行结果

需要注意的是:

  • 需要在项目属性-C/C+±常规-附加包含目录,设置项目包含的头文件所在位置。

  • 需要在项目属性-链接器-常规-附加库目录,设置项目依赖的库文件(.lib)所在位置。

  • 需要在项目属性-链接器-输入-附加依赖项,设置项目依赖的库文件(.lib)。

四.其他

1.也可以使用其他的方式创建静态链接库项目,比如创建C++项目-Windows桌面向导

2.建议自定义配置.lib/.exe等文件的生成目录。

3.建议在解决方案-项目依赖项/项目生成顺序中指定同一个解决方案中的项目依赖规则


欢迎讨论,欢迎指正,欢迎转载。

相关推荐
hh.h.9 分钟前
CANN算子开发入门:从零开始写第一个Ascend C算子
c语言·开发语言·cann·c算子
AI科技星31 分钟前
全域数学·第三部·数术几何部·平行网格卷 完整专著目录(含拓扑发展史+学科定位·终稿)
c语言·开发语言·网络·量子计算·agi
SunnyDays101133 分钟前
Java 读写 Excel 公式:从基础到高级的实战总结
java·开发语言·excel
wb0430720134 分钟前
Java 26
java·开发语言
白露与泡影38 分钟前
JVM GC调优实战:从线上频繁Full GC到RT降低80%的全过程
java·开发语言·jvm
灰灰勇闯IT38 分钟前
pyasc:用 Python 调用 CANN 的推理能力
开发语言·python
汉克老师1 小时前
GESP6级C++考试语法知识(十七、数据结构(三、认识队列 Queue))
数据结构·c++·队列·gesp6级·gesp六级·数组模拟队列
笨拙的老猴子1 小时前
[特殊字符] Java GC机制详解:G1、ZGC、Shenandoah全面解析与版本演进对比
java·开发语言
水木流年追梦1 小时前
大模型入门-Reward 奖励模型训练
开发语言·python·算法·leetcode·正则表达式
电子云与长程纠缠2 小时前
UE5制作六边形包裹球体效果
开发语言·python·ue5