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

VisualStudio环境搭建C++

Visual Studio环境搭建

说明

  • C++程序编写中,经常需要链接头文件(.h/.hpp)和源文件(.c/.cpp)。这样的好处是:控制主文件的篇幅,让代码架构更加清晰。
  • 一般来说头文件里放的是类的申明,函数的申明,全局变量的定义等等。源文件里面放的是函数的具体实现。
  • 由于程序运行之前需要编译,为了缩短编译时间,于是就有了事先先编译好的库文件.lib(静态库文件)和.dll(动态库文件)。
  • C++有众多的开源的第三方库。比如ImGui、QT等等。想要把这些第三方库在自己的程序中使用,那么就需要编译并链接了。
  • 一般从github上下载的第三方库文件,并没有lib文件。但是会提供一个Cmake文件。所以首先从github上下载文件,构建Cmake得到一个VisualStudio的解决方案文件.sln。打开这个解决方案文件,生成里面的所有项目。尤其需要注意的是INSTALL项目。生成完了之后,就能在文件夹里找到一些生成完成的.lib文件。
  • 使用第三方库时,只需要在自己的文件中,#include想要用到的头文件,并在编译器中链接.lib文件即可。

添加文件

  • 添加头文件和.lib文件需要在项目属性那里添加
  • 头文件路径需要添加到包含目录下,lib文件路径需要添加到库目录下。路径无需包含文件本身的名字

请添加图片描述

  • lib文件还需要添加文件名到附加依赖项中,我这里就添加了两个.lib文件

请添加图片描述

  • 添加.dll文件,就需要添加到系统环境变量中了

错误说明

  • 若是打开程序文件,发现一片飘红,首当其冲的还是某某.h文件找不到。那么说明这是头文件添加失败。
  • 点击运行之后,发现编译到一半出现报错,link2019等之类的link错误。那么说明是静态链接(基础概念,意思是:编译完之后进行链接,与之对应的是动态链接)出问题了。也就是说lib文件没有正确的添加。
  • 若程序正常编译,运行时候出现了控制台,跳出了一个弹窗,那么说明是dll文件添加失败,需要在系统的环境变量里添加包含dll文件的路径。因为它是动态链接,一边运行一边链接。所以在运行时候才会有问题。
  • 放一张lib文件链接错误,也就是link错误的截图:

请添加图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 业务系统如何接入文心一言AI模型
  • 第一个搭建SpringBoot项目(连接mysql)
  • layui监听table表单的多选框
  • 2414. Length of the Longest Alphabetical Continuous Substring
  • k8s集群部署:安装 kubeadm
  • 助力新能源汽车产业发展,2025第五届广州国际新能源汽车产业智能制造技术展览会将于11月在广州召开
  • 告别页面卡顿:Web Worker 助你解决前端性能瓶颈
  • linux进程间通信——进程间通信概念、最基本通信——管道文件
  • 基于微信小程序点餐、外卖系统的设计与实现 (源码+lw+参考文档+核心代码讲解等)
  • MacOS wine中文乱码问题
  • 负载均衡调度器--LVS
  • qt怎么格式化字符串?
  • 音视频入门基础:WAV专题(11)——FFmpeg源码中计算WAV音频文件每个packet的pts_time、dts_time的实现
  • 【开发工具】Maven Dependency Helper:IntelliJ IDEA的贴心助手,助力梳理依赖关系
  • Numba最近邻插值(CPU+ GPU + Z轴切块 + XYZ轴切块 + 多线程)
  • angular学习第一篇-----环境搭建
  • Apache的基本使用
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Laravel 中的一个后期静态绑定
  • learning koa2.x
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Mocha测试初探
  • webpack4 一点通
  • 安卓应用性能调试和优化经验分享
  • 基于 Babel 的 npm 包最小化设置
  • 近期前端发展计划
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 温故知新之javascript面向对象
  • 正则学习笔记
  • 追踪解析 FutureTask 源码
  • 1.Ext JS 建立web开发工程
  • 从如何停掉 Promise 链说起
  • 如何用纯 CSS 创作一个菱形 loader 动画
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # Redis 入门到精通(一)数据类型(4)
  • #pragma预处理命令
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (LeetCode) T14. Longest Common Prefix
  • (ZT)出版业改革:该死的死,该生的生
  • (转)http-server应用
  • .ai域名是什么后缀?
  • .equals()到底是什么意思?
  • .Net Remoting常用部署结构
  • .net web项目 调用webService
  • .NET 发展历程
  • .net 提取注释生成API文档 帮助文档
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • @Transaction注解失效的几种场景(附有示例代码)
  • @Transient注解
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)