VS进行C++开发的环境概述(更新中)
本文最后更新于 560 天前,其中的信息可能已经有所发展或是发生改变。

Visual Studio C++ 开发完全体

什么是解决方案

visual studio的文件管理符合其为超大项目服务的定位,在 项目 外还有一层 解决方案,用来将一组项目归入其中并管理依赖等,依然符合树形结构。外/解决方案A/项目1 外/解决方案A/项目2 外/解决方案B/项目3

很多时候有一个这样的全局大目录就够了,还是能以项目为独立分隔的单位,所以无妨。但请养成项目管理的好习惯。

C++编译和运行

visual studio的编译单位是项目,用visual studio 提供的编译工具不能编译单个文件(当然可以用vscode实现)

解决方案中有多个项目。调试整个解决方案时,右键某个项目设为启动项目

项目设置

项目右键属性,其中的目录一栏可以设置项目有关的目录,包括 生成目录引用目录库目录

  • 引用目录:导入头文件,用 #include " " 引入,随项目编译,修改后要重新编译(目前不知道还有啥用)

  • 包含目录:也是导入头文件,但处理逻辑默认倾向于作为库使用,用 #include < > 引入,修改后要重新链接。建议用于软件库的 include 目录,基本是和库目录成对导入

  • 库目录:导入库文件,软件库的使用一般是编译得到头文件和库文件两个目录,再导入配置,库文件也是编译生成的,见下方 ↓

    当然,有时候还得在 属性 - 链接器 - 输入 里设置 lib 文件

库文件

程序生成历经编译 - 链接

  1. 编译是导入头文件转换成汇编,但头文件仅有声明,最终汇编代码中,头文件内函数的跳转地址只能留空

  2. 而链接大致就是找到目标函数本体的地址并填充,成为一个完整的可执行程序,而目标函数所在的程序就是库

那么库的意义是?

  • 提前编译一部分可复用的源文件,提高编译链接效率
  • 避免源文件直接暴露。最终声明在头文件,而实现在库文件,库保留了源文件除编辑以外的功能(?

静态库 .lib 在编译时就运行,最终和主程序捆绑载入内存

动态链接库 .dll 在运行时才会报缺失,动态链接库在内存中不和主程序绑定,可以实现多个程序共用

导入内容

顶栏 - 视图 - 其他窗口 - 属性管理器,打开预设配置

项目右键 - 属性,打开项目配置,可以继承预设配置中的内容

  • VC++目录 - 包含目录,找构建完成的路径下的 include 目录

    例如 opencv\build\include

  • VC++目录 - 库目录,找构建完成的路径下的 lib 目录

    例如 opencv\build\x64\vc15\lib

  • 链接器 - 输入 - 附加依赖项,一般添加 库目录 下的 .lib 文件

    例如 opencv_world3414.lib opencv_world3414d.lib,后者是 Debug 用的库

在属性管理器中,添加新项目属性表,可以在其中添加用户宏,用宏名称代替一串路径

偏好设置
代码样式

如果安装了 ReSharper 务必注意,部分 VS 自身的设置会被 ReSharper 覆盖,比如代码格式化

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇