当前位置: 首页 > news >正文

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

目录

  • 一.前言
  • 二.生成静态链接库
  • 三.使用静态链接库
  • 四.其他


一.前言

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

二.生成静态链接库

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

在这里插入图片描述

在这里插入图片描述

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

然后创建需要的.h和.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
//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程序会调用静态链接库。

在这里插入图片描述

看下代码

//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.建议在解决方案-项目依赖项/项目生成顺序中指定同一个解决方案中的项目依赖规则

在这里插入图片描述

在这里插入图片描述


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

http://www.lryc.cn/news/239307.html

相关文章:

  • 【2024系统架构设计】 系统架构设计师第二版-未来信息综合技术
  • JavaFX修改软件图标
  • Linux ps -ef|grep去除 grep --color=auto信息
  • jQuery的学习(一篇文章齐全)
  • 注塑行业各类业务流程图(系统化)
  • Android Studio 安装及使用
  • 计算机网络的OSI七层模型
  • 如何一次性解压多个文件
  • 类和对象学习笔记
  • Linux程序之可变参数选项那些事!
  • 【1day】泛微e-office OA系统user_page接口未授权访问漏洞学习
  • Midjourney绘画提示词Prompt参考教程
  • Altium Designer学习笔记6
  • 【问题解决】Maven密码加密
  • vue3基于vite打包
  • 前端使用JWT时无法获取Authorization请求头
  • postman定义公共函数这样写,测试组长直呼牛逼!!!
  • 单元测试实战(六)其它
  • jmeter 主从配置
  • 4
  • C++ Day04 this指针,友元函数,重载
  • 2023做车载测试真的可以远离内耗!转行车载月入20K!
  • LINUXZ
  • C#单例模式懒汉式与饿汉式
  • 小微初创企业,如何利用媒体宣传快速成长
  • 【封装UI组件库系列】全局样式的定义与重置
  • opencv将32位深图片合成视频跳帧解决办法
  • 华为obs上传下载-Java版 2023-11-23
  • 2023年中国农业机器人行业市场规模及发展趋势分析[图]
  • 12英寸双轴半自动划片机:颠覆传统划切工艺的五大优势