VS2019环境下C++配置环境/创建动态链接库

2023-11-04


前言

最近有一个收尾的项目分到了手里,由于基本没有使用过VS2019所以在这个过程中也踩了很多坑,写出来希望其他人能少走弯路


一、配置环境

0.准备

这里先默认大家已经创建了一个空项目。在VS上方找到视图-其他窗口-属性管理器,点击一下该窗口就会出现在你的工程里类似于这样:
:Alt
然后我们以opencv举例,对于所有常用的包都包含两个版本,即release和debug,这两种版本对应着你运行代码时选择的情况:在这里插入图片描述
如果你这个位置选择的是debug,那你接下来配置环境就要用debug包里的东西,如果你是release,就要用release包的东西,绝对不能混用,这关系到后边生成两种版本的动态链接库能否成功

1.添加项目表

右击你要运行的环境,选择添加新项目表,为了方便两种情况下的区分,名称最好改一下,release的项目可以就叫release。

在这里插入图片描述
在这里插入图片描述
点击添加,可以看到我们的releasex64下面出现了一个新的项目表。

在这里插入图片描述

2.include文件与lib文件的配置

include文件设置

双击上一步新建的项目表,会弹出下图这个窗口

在这里插入图片描述

看上去很复杂,不过对于配置一个库来说我们需要设置的只有两部分,第一步点击 VC++目录 ,然后将要配置的库中include文件夹的路径添加到 包含目录 中。包含目录其实就是include的翻译。如图

在这里插入图片描述

点击表格末端的箭头,点击编辑,然后点击最上方的新建行,输入要配置的include文件夹路径。

在这里插入图片描述

lib文件配置

第二步对这里的库目录,进行相似的操作,这次输入的路径为要配置的环境中的lib文件夹路径

在这里插入图片描述
这里不同包的lib位置不一样大家找一下就好,像这里的opencv460不在主目录中,有些包会直接放到主目录中。
然后我们要去到 链接器-输入-附加依赖项

在这里插入图片描述

同样也是点击末端的箭头,然后点击这个编辑,将我们要配置的库文件中的所有.lib文件添加进来,虽然我们实际编程时不会用到这么多,但如果你不知道你需要用哪个,我还是建议全部添加进来,这步会比较麻烦,如果你有的包比较多的话要打字很长时间,我们这里使用的opencv只有一个高度集成的lib,所以比较容易添加。

在这里插入图片描述

到这里我们点击确定,opencv的环境就配好了。
注意,所有的包都可以按照类似的方法配置成功,其他的任何参数都与配环境无关。

重要提示
此处配置的是release版本,如果要使用debug版本,对应的include与lib包括最后的链接器添加的lib都要改成debug版本文件夹下的对应路径或文件名,也就是在debug文件夹下重复一遍以上的步骤

二、使用已有代码生成动态链接库

动态链接库生成的时候我是按照这篇文章来的,这位博主讲的很仔细,大家可以看一下。

c++生成DLL文件(visual studio 2019)面向小白萌新

生成后的调用部分不建议大家按照这位博主的来,生成的文件中有用的只有 .dll文件 .lib文件pch.h文件,可以将这三个文件放在要调用的工程的目录下,按照配环境的方式加载自己生成的动态链接库。下边这篇文章讲的很仔细:

VS2019编译生成动态链接库dll的两种方式

文章中的第三步就是调用方法,很靠谱。

如果文章有什么错误,或者大家有什么没理解的地方欢迎交流

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VS2019环境下C++配置环境/创建动态链接库 的相关文章

  • 捕获 .aspx 和 .ascx 页面中的异常

    问题说明了一切 请看以下示例代码 ul li li ul
  • C# 中一次性对象克隆会导致内存泄漏吗?

    检查这个代码 class someclass IDisposable private Bitmap imageObject public void ImageCrop int X int Y int W int H imageObject
  • 如何向 Mono.ZeroConf 注册服务?

    我正在尝试测试 ZeroConf 示例http www mono project com Mono Zeroconf http www mono project com Mono Zeroconf 我正在运行 OpenSuse 11 和 M
  • Makefile 和 .Mak 文件 + CodeBlocks 和 VStudio

    我对整个 makefile 概念有点陌生 所以我对此有一些疑问 我正在 Linux 中使用 CodeBlocks 创建一个项目 我使用一个名为 cbp2mak 的工具从 CodeBlocks 项目创建一个 make 文件 如果有人知道更好的
  • 为什么某些安装程序需要在运行程序之前重新启动计算机?

    我对部署桌面应用程序相当陌生 所以这是我第一次为我的软件构建安装程序 目前 我安装软件后第一次运行它时 它崩溃了 之后 它运行良好 我仍在调试此问题 但我注意到在安装后和运行软件之前立即重新启动似乎可以修复此崩溃 某些安装程序要求您在运行软
  • 如何停止执行的 Jar 文件

    这感觉像是一个愚蠢的问题 但我似乎无法弄清楚 当我在 Windows 上运行 jar 文件时 它不会出现在任务管理器进程中 我怎样才能终止它 我已经尝试过 TASKKILL 但它对我也不起作用 On Linux ps ef grep jav
  • 测量进程消耗的 CPU 时钟

    我用 C 语言编写了一个程序 它是作为研究结果创建的程序 我想计算程序消耗的确切 CPU 周期 精确的循环次数 知道我怎样才能找到它吗 The valgrind tool cachegrind valgrind tool cachegrin
  • LinkLabel 无下划线 - Compact Framework

    我正在使用 Microsoft Compact Framework 开发 Windows CE 应用程序 我必须使用 LinkLabel 它必须是白色且没有下划线 因此 在设计器中 我将字体颜色修改为白色 并在字体对话框中取消选中 下划线
  • C# 获取数据表中所有重复行的计数

    我通过运行存储过程来填充数据集 并且从数据集中填充数据表 DataSet RawDataSet DataAccessHelper RunProcedure storedprocedureName this will just return
  • 如何防止 Blazor NavLink 组件的默认导航

    从 Blazor 3 1 Preview 2 开始 应该可以防止默认导航行为 https devblogs microsoft com aspnet asp net core updates in net core 3 1 preview
  • ASP.NET Core 中间件与过滤器

    在阅读了 ASP NET Core 中间件之后 我对何时应该使用过滤器以及何时应该使用中间件感到困惑 因为它们似乎实现了相同的目标 什么时候应该使用中间件而不是过滤器 9频道有一个关于此的视频 ASP NET 怪物 91 中间件与过滤器 h
  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重
  • .NET 和 Mono 之间的开发差异

    我正在研究 Mono 和 NET C 将来当项目开发时我们需要在 Linux 服务器上运行代码 此时我一直在研究 ASP NET MVC 和 Mono 我运行 Ubuntu 发行版 想要开发 Web 应用程序 其他一些开发人员使用 Wind
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • 在哪里可以找到 Microsoft.Build.Utilities.v3.5

    如何获取 Microsoft Build Utilities v3 5 我正在使用 StyleCop 4 7 Stylecop dll 中的 StyleCop msbuild 任务似乎依赖于 Microsoft Build Utilitie
  • Windows 10:任务栏中的图标大小错误

    从 Windows 10 开始 任务栏中的图标大小似乎为 24x24px 如果 Windows 选择图标文件中的 24px 版本进行显示 那么这不会有问题 但它选择了 32px 版本并将其缩小 这会导致丑陋的伪像 尤其是当你的图标中有直线时
  • 如果将变量设置为等于新对象,旧对象会发生什么?

    假设我们有一个 X 类not有一个超载的operator 功能 class X int n X n 0 X int n n n int main X a 1 an object gets constructed here more code
  • 声明一个负长度的数组

    当创建负长度数组时 C 中会发生什么 例如 int n 35 int testArray n for int i 0 i lt 10 i testArray i i 1 这段代码将编译 并且启用 Wall 时不会出现警告 并且似乎您可以分配
  • 如何在 C# 中获取 CMD/控制台编码

    我需要指定正确的代码页来使用 zip 库打包文件 正如我所见 我需要指定控制台编码 在我的例子中为 866 C Users User gt mode Status for device CON Lines 300 Columns 130 K
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有

随机推荐

  • webservice的接口测试工具

    一 webservice介绍 webservice是一个跨语言跨平台的技术 使用webservice进行接口测试时不需要知道每一种语言和操作系统 webservice工作原理 webservice主要核心技术 HTTP 使用http来传输数
  • 解决java或jsp中的For input string的错误

    目录 问题 解决方案 方案一 方案二 方案三 备注 问题 我们在做接jsp开发时 不论是在jsp页面 还是在controller中 都会遇到这样的错误 For input String错误 为什么会出现这样的错误呢 当时 我在init中从数
  • beamer笔记——幻灯片比例改为16:9

    beamer进阶学习 幻灯片比例改为16 9 将幻灯片比例改为16 9 documentclass aspectratio 169 beamer 幻灯片包括的比例主要有 16 10 14 9 1 41 1 5 4 4 3 default 3
  • 【CTF】Python原型链污染

    Python原型链污染 原型链 在Python中每个对象都有一个原型 原型上定义了对象可以访问的属性和方法 当对象访问属性或方法时 会先在自身查找 如果找不到就会去原型链上的上级对象中查找 原型链污染攻击的思路是通过修改对象原型链中的属性
  • Java,微信群

    一起进行Java的知识传递与分享 快来加入吧 有问题可加个人微信 Ysrbj18 备注Java交流 拉你入群 可扫码加我
  • muduo库学习-日志模块的学习以及C++日志模块封装

    前言 开发一款软件 一个好的日志库肯定是必不可少的 c 作为一门这么古老的开发语言 按理说应该有一些好用的日志库 但是在网上找到的那些日志库感觉用起来都不是很得心应手 因此就自己动手写了一个日志库 源码放在github上 我自己写的这个日志
  • Channel On Live(离散化)

    题目网址 https acm ecnu edu cn contest 103 problem C 离散化 1 unique函数 c unique t 1 t 1 n t 1 此为去重函数 12335去重后为12355 即去掉重复的 后面的不
  • R7-9 统计Java程序中关键词的出现次数

    编写程序统计一个输入的Java源码中关键字 区分大小写 出现的次数 说明如下 Java中共有53个关键字 自行百度 从键盘输入一段源码 统计这段源码中出现的关键字的数量 注释中出现的关键字不用统计 字符串中出现的关键字不用统计 统计出的关键
  • [Python+Django]Web图书管理系统毕业设计之数据库及系统实现源码篇

    前排提醒 本文干货超多 为避免消化不良建议配合目录食用 本系列博文献给即将毕业的程序猿们 系列文章共三篇 在编写的过程中可以说几乎是参照毕业设计目录样式来进行的 相关图表和截图也都几乎按照毕业设计论文的要求来编制 完整阅读消化此系列博文套上
  • 人眼定位python代码_使用dlib,OpenCV和Python进行人脸识别—人眼眨眼检测

    前期文章我们分享了如何使用python与dlib来进行人脸识别 以及来进行人脸部分的识别 如下图 dlib人脸数据把人脸分成了68个数据点 从图片可以看出 人脸识别主要是识别 人眉 人眼 人鼻 人嘴以及人脸下颚边框 每个人脸的部位都有不同的
  • 百度营销:百度扩量投放技巧

    众所周知百度是国内大部分用户都在使用的搜索引擎 百度搜索投放的是关键词形式 今天将带来一些账户优化的建议 放量模式 共享预算有哪些投放细节呢 以下梳理了5个小技巧 1 适合的账户类型 更适合预算充足的广告主 如果当前 你每天的获客量远远满足
  • layui之ajax--回调函数

    问题 一个简单的AJAX提交表单操作 经常发生后台数据保存好了 前端layer弹出层没有关闭 父页面没有刷新 定位发现是回调函数没有执行 用Google Chrome浏览器这种现象较少 而Safari 和 firefox浏览器100 发生
  • 2021-02-09 链表复制

    给你一个长度为 n 的链表 每个节点包含一个额外增加的随机指针 random 该指针可以指向链表中的任何节点或空节点 构造这个链表的 深拷贝 深拷贝应该正好由 n 个 全新 节点组成 其中每个新节点的值都设为其对应的原节点的值 新节点的 n
  • mysql查看数据库状态

    很赞的文章 https codeplayer vip p j7sc4 官方教程是最应该查看的文档 https dev mysql com doc refman 5 5 en show html 我真正关心的数据 比如一秒钟到底能插入多少行数
  • Package javax.ws.rs

    http docs oracle com javaee 6 api javax ws rs package summary html Annotation Types Summary ApplicationPath Identifies t
  • 新路程------imx6的模块编译的Makefile

    KERNEL SOURCE opt IMX6 linux 3 0 35 obj m ldb o default make C KERNEL SOURCE M PWD modules arm hismall linux gcc pcf8563
  • python numpy从坐标序列中计算累计移动距离

    也是从其他程序中学习得到计算距离 position 通过list来存储坐标xy position append x y position np array position 转换成数组 dist arr np concatenate np
  • 基于docker一行命令搭建个人博客wordPress

    前言 作为对技术热爱的一群小伙伴们 技术分享开源社区的贡献都是我们技术人引以为傲的一件事情 不仅如此 技术分享或者记录也是对自己职业成长的记录 更甚者 如果你的技术分享深度不错 并且帮助到别人那么在面试中也是又很大帮助的 今天就给大家谈一下
  • 两条轨迹相似度算法,轨迹相似性度量

    百度地图 百度地图是百度提供的一项网络地图搜索服务 覆盖了国内近400个城市 数千个区县 在百度地图里 用户可以查询街道 商场 楼盘的地理位置 也可以找到离您最近的所有餐馆 学校 银行 公园等等 2010年8月26日 在使用百度地图服务时
  • VS2019环境下C++配置环境/创建动态链接库

    文章目录 前言 一 配置环境 0 准备 1 添加项目表 2 include文件与lib文件的配置 include文件设置 lib文件配置 二 使用已有代码生成动态链接库 前言 最近有一个收尾的项目分到了手里 由于基本没有使用过VS2019所