vs2019常用设置
目录1 创建c++ dll2 注释快捷键3 代码折叠和展开4 自动对齐5 vs2019项目中添加外部文件或者文件夹6 v141_xp安装7 Visual Studio切换界面显示语言8 关于vs编码格式UTF8中文处理方式9 VS2019 设置显示”高级保存选项“10 vs安装扩展11 VS 运行库MT、MD的区别1 创建c++ dll使用vs2019用c++创建dll库:https://blog
目录
-
- 1 创建c++ dll
- 2 注释快捷键
- 3 代码折叠和展开
- 4 自动对齐
- 5 vs2019项目中添加外部文件或者文件夹
- 6 v141_xp安装
- 7 Visual Studio切换界面显示语言
- 8 关于vs编码格式UTF8中文处理方式
- 9 VS2019 设置显示”高级保存选项“
- 10 vs安装扩展
- 11 VS 运行库MT、MD的区别
- 12 vcvarsall.bat位置
- 13 msbulid路径
- 14 Cmake调用vs
- 15 VS2019添加静态库文件
- 16 默认库“msvcrtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
- 17 元文件找不到
- 18 命令行 error D8021: 无效的数值参数 "/Wextra"
- 19 Visual Studio 2017各版本安装包离线下载、安装全解析
- 20 设置C++17标准
- 21 此模块的调试信息中缺少源信息?
- 22 是否忘记了向源中添加"#include “pch.h"
1 创建c++ dll
使用vs2019用c++创建dll库:https://blog.csdn.net/qq_41374107/article/details/106021015
2 注释快捷键
注释:ctrl+k,ctrl+c
取消:ctrl+k,ctrl+u
3 代码折叠和展开
Ctrl + M + O
:折叠所有方法;Ctrl + M + M
:折叠或者展开当前方法;Ctrl + M + L
:开所有方法。
VS2019使用快捷键 Ctrl + M + O
无法折叠 region
的设置:工具 => 选项 => 文本编辑器 => C# => 高级 => 大纲 => 折叠到定义时可折叠#region;
4 自动对齐
CTRL+K
CTRL+F
5 vs2019项目中添加外部文件或者文件夹
1、将需要使用的外部路径的文件拷贝至项目下。
2、在解决方案资源管理器中的下方按钮中点击显示所有文件按钮。
3、右击在项目中需要添加的文件,点击“包含在项目中”。
4、配置附加包含目录:点击项目,再点击属性。然后再“c/c++”下“常规”设置“附加包含目录”,即填写需要包含文件的文件夹路劲,如果有多个文件夹路劲则用分号空开。最后点击确认即可。
6 v141_xp安装
7 Visual Studio切换界面显示语言
【工具】-【选项】-【环境】-【区域设置】-【语言】-【获取其他语言】
8 关于vs编码格式UTF8中文处理方式
本节内容来自这里。
9 VS2019 设置显示”高级保存选项“
本节内容来自这里。
10 vs安装扩展
本节内容来自这里。
11 VS 运行库MT、MD的区别
VC项目属性→配置属性→C/C++→代码生成→运行时库 可以采用的方式有:
多线程(/MT)、多线程调试(/MTd);
多线程DLL(/MD)、多线程调试DLL(/MDd);
单线程(/ML)、单线程调试(/MLd)。
目前Win7、Win10等,选择MD问题不大,但是XP等一些比较老的系统需要选择MT。
两者的区别:
/MT
是 "multithread, static version” 意思是多线程静态的版本,定义了它后,编译器把 LIBCMT.lib
安置到OBJ文件中,让链接器使用LIBCMT.lib 处理外部符号。
/MD
是 "multithread- and DLL-specific version” ,意思是多线程DLL版本,定义了它后,编译器把 MSVCRT.lib 安置到OBJ文件中,它连接到DLL的方式是静态链接,实际上工作的库是 MSVCR80.DLL
。
即:
静态运行时库:LIBCMT.lib
;
动态运行时库:MSVCRT.lib
+ MSVCR80.DLL
。
所以,当你用CMAKE生成工程文件时,若CMAKE是用/MT生成的(查看工程原始目录的CMakeLists.txt),则它所调用的运行时库为:LIBCMT.lib,若生成的工程的运行时库(Runtime Library)你选择/MD,则此工程在编译后链接的时候,将会调用动态运行时库:MSVCRT.lib + MSVCR80.DLL,明显,两次对同一个某运行时库里的函数调用的库不同,则会出现重定义的错误。若此工程生成的是库文件,则其他工程调用此库时也必须是/MT。
其他说明:
其中以小写 “d”
结尾的选项表示的 DEBUG
版本的,没有 “d”
的为 RELEASE
版本。大型项目中必须要求所有组件和第三方库的运行时库是统一的,否则将会出现LNK2005井喷。
单线程运行时库选项/ML和/MLd在VS2003以后就被废了。
12 vcvarsall.bat位置
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat
13 msbulid路径
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe
14 Cmake调用vs
visual studio 15 2017
Visual Studio 16 2019
15 VS2019添加静态库文件
右键->属性->VC++目录:
包含目录:头文件目录;引用目录:连接库目录;
链接器->输入:
附加依赖项:静态链接库名称;
链接器->常规:
附加库目录字段,将指定的XX.lib所在的路径添加进去。
16 默认库“msvcrtd.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
warning LNK4098: 默认库“MSVCRT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library;
原因:
在使用多线程调试dll(MDd)模式的时候 <位置:配置属性 - c/c++ - 代码生成-运行时库>msvcrtd.lib 与 ibcmt.lib产生冲突;
解决方法有2个:
1、右击工程 - 属性“配置属性 - 链接器 - 输入 - 忽略特定库”,添加“libcmt.lib ”;
2、右击工程 - 属性 ”配置属性 - 链接器 - 命令行” 添加: /NODEFAULTLIB:“libcmt.lib”;
17 元文件找不到
.nuget\packages\microsoft.extensions.logging.abstractions\3.1.32\analyzers\dotnet\roslyn3.11\cs\Microsoft.Extensions.Logging.Generators.dll
找不到:
解决方案->右键->管理解决方案的nuget程序包->选择项目->安装。
18 命令行 error D8021: 无效的数值参数 “/Wextra”
该项目之前是在不同系统下 (比如ubuntu) 配置好项目,个人将其在win10下面重新编译配置并运行,因此出现上述报错信息;
解决方法:右键项目 -> 属性 -> C/C++ -> 命令行,将 “其它选项” 中内容删除即可。
19 Visual Studio 2017各版本安装包离线下载、安装全解析
https://www.ithome.com/0/297/093.htm
20 设置C++17标准
右键项目,属性,常规->C++语言标准,选择【C++17标准】:
21 此模块的调试信息中缺少源信息?
22 是否忘记了向源中添加"#include “pch.h"
更多推荐
所有评论(0)