记录Visual Studio的一些使用技巧,包括创建Snipplet、一些常见错误的解决方案和使用命令行编译的相关方法。
重定向源码路径
- 调试
为了能够顺利进行调试,将 工程属性-调试-工作目录 设为新的目录 - 添加文件
默认的右键工程目录添加文件并不好用,因为每次总是给定*$(SolutionDir)$(ProjectName)*下的一个地址,因此可以使用插件Add New File,只需要Shift+F2即可
出现符号未定义或者符号重定义的情况
这是正常现象,重生成清理都没有用,正确方法是讲涉及的文件移出工程再重新添加即可,一般这种原因是某个函数所声明的h文件曾经被rename过。
使用MSBuild编译C++代码
使用命令行编译可以使用MSBuild直接构建vcxproj文件,也可以使用VCVARS32.bat来运行传统的Makefile文件
命令行常见选项及意义
目录
OutDir
这是输出目录,包含ilk、pdb文件的所在地。对应于VS中的常规-输出目录。建议和OutputFile的目录相同,否则会出一个warning。
这应当在PropertyGroup选项中配置。默认值为$(SolutionDir)$(Platform)\$(Configuration)\
,例
1 | <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
IntDir
这是编译器生成的obj以及log文件的所在地。对应于VS中的常规-中间目录。
这应当在和OutDir相同的地方配置。默认值为$(Platform)\$(Configuration)\
,例同上
OutputFile
这就是最终生成的exe文件名字。对应于VS中的链接器-常规-输出文件选项。
这应当在ItemDefinitionGroup-Link选项中配置。默认值为$(OutDir)$(TargetName)$(TargetExt)
,例
1 | <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> |
LocalDebuggerCommandArguments
为了能够让IDE兼容我们的编译结果,我们需要同时修改IDE的配置选项。
这个是在IDE中用来调试的命令行,其默认值为$(TargetPath)
,也就等于生成的exe的位置