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

这篇具有很好参考价值的文章主要介绍了Windows下C++静态链接库的生成以及使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一.前言

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

二.生成静态链接库

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

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言

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

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

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言

看下代码

//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;
}

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

报错

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言

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

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言

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

三.使用静态链接库

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

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言

看下代码

//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;
}

其实就是很简单的代码。

执行结果

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言

需要注意的是:

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

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

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

四.其他

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

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言

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

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

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言

Windows下C++静态链接库的生成以及使用,C++,c++,开发语言


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

文章来源地址https://www.toymoban.com/news/detail-755301.html

到了这里,关于Windows下C++静态链接库的生成以及使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【linux深入剖析】动态库的使用(续) | 动静态库的链接

    🍁你好,我是 RO-BERRY 📗 致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 回顾上节,我们在创建了动态库libmymath.so 我们使用指令 gcc main.c -L. -lmymath -L . (-L + 路径表示myc这个库在哪

    2024年04月15日
    浏览(41)
  • 【Linux】动静态库的使用与软链接的结合

    库本质就是把一堆(.o)后缀的文件也就是目标文件整合在一起 静态库(.a):程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库 在makefile中 1.第三方库的使用,gcc往后必须加上 -l +库名 2.如果系统中只提供静态链接,则gcc对其进行静态链

    2024年02月05日
    浏览(39)
  • 【Java万花筒】无服务器静态网站开发:Java静态站点生成库的选择与实践

    在当今互联网时代,静态网站已经成为了展示个人作品、技术文档、博客等内容的常见形式。静态站点生成器为我们提供了一种快速、简单的方式来创建、管理和发布静态网站,从而使我们能够专注于内容本身而不必担心复杂的后端逻辑和数据库管理。本文将介绍几种流行的

    2024年02月21日
    浏览(55)
  • 静态链接库和动态链接库的区别

    在编译时将库的代码( .lib文件 )和应用程序的代码合并在一起,生成一个单独的可执行文件。 发布时非常方便,直接一个.exe文件即可 库的代码在编译时和链接时与应用程序分开。应用程序包含对库的引用( .lib文件 ,在这里被称为导入库),但不包含库的实际代码。 在 运行

    2024年02月11日
    浏览(44)
  • 详解Linux下静态库/动态库的生成和使用(含代码示例和操作流程)&&动态库和静态库的区别

    关于gcc的使用方法可以参考下方链接博客: Linux下详解gcc编译过程(含代码示例) gcc使用教程 库是一种组件技术。 库里封装了数据和函数,提供给用户程序调用。 库只执行到第三阶段编译,没有链接。 库的使用可以使程序模块化,提高程序的编译速度,实现代码复用。

    2024年02月15日
    浏览(45)
  • Linux文件(系统)IO(含动静态库的链接操作)

    fopen打开文件,fclose关闭文件 fwrite操作(写文件) fwrite函数从 ptr 里将 nitems 个大小为 size 字节的数据写进定 stream 里 hello_w.c 文件 这里我们将会在此路径得到一个写有 5 行 hello fopen 的 myfile.txt 文件,如下gif: fread操作(写文件) fread 不会在字符串末尾添加 null 终止符( \\0

    2024年04月14日
    浏览(48)
  • makefile之静态库的生成

    有时候需要把一组代码编译生成一个库,这个库在很多项目都要用到. Makefile Makefile.config Host.c host.h

    2024年02月09日
    浏览(28)
  • 【看表情包学Linux】软硬链接 | 软连接数 | 创建软硬链接 | 动静态库 | 生成静态库 | 生成动态库

       🤣  爆笑 教程  👉 《看表情包学Linux》👈   猛戳订阅     🔥 💭 写在前面: 上一章我们讲解了 inode,为文件系统收了尾,这几章我们充分地讲解完了文件系统的知识点,现在我们开始开始学习软硬链接了。如果没有文件系统的铺垫,想直接理解软硬链接难免有些困

    2024年02月14日
    浏览(48)
  • c语言的链接(静态链接和动态链接)以及a.out的简述

           链接过程分类两种,动态链接和静态链接。如果函数库的一份拷贝是可执行文件的物理组成部分,则为静态链接,动态链接生成的可执行文件只包含了文件名,在运行时,程序会自动寻找所需要的函数库。函数只有在运行的时候才会被解析调用,它是在main函数之前

    2024年02月07日
    浏览(38)
  • dedecms伪静态设置以及目录链接301跳转实现方法(伪静态)

    htaccess伪静态的规则 通过htaccess使用伪静态,则必须空间商支持Rewrite模块,该模块负责URL的重写。否则即便是设置好了,也无法使用,并且还有可能出现500错误。 下面是dedecms的伪静态设置文本(部分参考): 个性化伪静态还需要配合修改dedecms后台文件才能实现 效果为www.

    2024年02月01日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包