VS项目配置常用的配置

我自己总结的VS2022使用

VS2022使用/doc · gongshuxuelang/blog - 码云 - 开源中国 (gitee.com)

背景

随着学习使用VS的深入在项目配置使用一些相对路径是必不可少的,使用绝对路径是最简单的,但是加入你换了电脑或者别人拉取你的代码,就会发现通常会编译不过.因为项目配置使用了绝对路径.所以使用相对路径的好处就会体现.在VS项目配置有自己的一套配置,简单记录一下我使用到的配置.

上图就是一个很简单的C++项目的配置页面,下面 介绍各个模块是干什么的,以及怎么配置.这里我只介绍我常用的,一些不常用的我就忽略了,以后用到了我会回来补充的.

话不多说开始从第一个介绍.

General(常规)

先从我新建的demo说起:

这个目录是我新建的一个demo,Plot存放的是project,build我打算存放编译的中间文件,因为我不喜欢在project目录里存放一些没用的文件,项目文件夹下我觉得存放源码和必要的project工程文件就够了.如下图.

inc是我存放头文件的,src存放源文件的,其他的是必要的工程文件.必要的时候可以新建一个资源文件夹来存放.

正文

这个文件是存放编译好的文件.

$(SolutionDir) solution地址

这个配置是选择windows的运行库版本,这个看自己的电脑环境,一般默认即可.我使用的是VS2015,这个功能不是很完善,在VS2022中这个可以选择最后的版本,我一般在VS2022中会设置最后的版本,在VS2015中只能选择安装时的版本了.

其中有个VS相对路径的参数很重要就是$(SolutionDir)这个参数就是指你的solution所在地址的,以我这个demo为例.我这个demo的.sln文件的路径是D:\code\MyCode\C++\qt\Plot\这个参数就是相当于这个路径,

$(SolutionDir)outputFile这个参数后面加个文件名就是我存放编译好输出文件的地址.

这个参数是编译的中间文件所在目录

我这里设置在solution路径的build文件夹下.

$(OutDir)

这个参数相当于$(SolutionDir)outputFile这个参数,当然不能用在上面那个参数位置,这个位置设置好其他参数可以直接使用.

$(Platform)

x64或者X86 就是VS编译的这个参数

$(Configuration)

VS的这个值

$(ProjectName) 项目名字

这个参数是指定项目名称的

$(IntDir) 中间文件存放地址

这个参数是中间文件存放的路径,在上面设置完下图这个参数,这个就是下图这个参数的路径.

$(MSBuildProjectName) 项目名字

这个参数跟$(ProjectName)这个参数一样也是项目名称

Debugging

这是Debugging的页面,本地调试,这个页面不需要动,但是在远程调试这个是重点.

远程调试需要选择一下:

这个页面是用来设置远程调试的,由于这次demo代码就在本地运行,没办法实验远程,就简单介绍一下用途.

下图这个参数是exe的路径,例如我的软件在另外一台电脑的C:\demo\plot.exe,这个参数就是C:\demo\plot.exe 这个值.

接下来这个参数就不是那个软件都能用的到的

这个参数是在exe软件启动的时候需要输入的参数,例如要填写[0][dev][dev],这个一般是那些需要登陆的软件,要是没有账户密码是进不去软件的,这个一般给开发者用的,使用开发者账号来用,上面的[0][dev][dev]就是对应的账户密码,这个不固定几个参数,我这里就用三个参数来代替.

这个参数是软件的工作目录,例如上面的那个值C:\demo\需要填写这个

$(ProjectDir) 项目路径

这个参数也就是项目的路径,我这里是本机,所以就是我的项目路径,存放plot项目的路径:D:\code\MyCode\C++\qt\Plot\Plot\

下面这个参数是远程电脑的ip地址,例如你把软件放到另外一台电脑,电脑ip是10.10.10.5,这里就填这个ip地址.

$(COMPUTERNAME) 当前ip地址

这个参数是指代当前的ip地址,

这页下面的就不是很常见,就不展开说了

我以127.0.0.1来模拟一下远程debug

VC++ Directories

这一页是系统库配置文件,一般自己写的代码不建议在这里设置,比我我写了一个库,头文件dll文件lib文件都可以在这里设置,但是不太建议,因为这个是设置系统库的,别人拿到你这个工程,你的库文件也许不在别人电脑里,编译会不通过.而且下面几个才是真正第三方库配置的地方,所以这里我一般不会动,非要在这里添加其实也是可以,只不过,我习惯默认.

这几栏是下载了Qt插件才会有的,里面配置大同小异,如果没有Qt下面这几栏介绍的可以忽略了.

Qt Project Setting

这是选择Qt版本,一般不会动,除非你电脑有多个Qt版本.

这个参数是Qt的模块,如果要添加其他模块可以在这里添加,点开:

这个参数是设置moc文件的地址,

C/C++

这页是配置第三方库使用的

这个参数是添加头文件地址的

这个参数是是否开启多核编译的,

$(TargetName) 目标名字,跟项目名字一样的

Linker

这页是编辑库的地址的,上页填写了库头文件地址,这页主要是填写dll或者lib地址的.

这个是dll库的地址

这个是填写库的名字

注意:这个一定要填写xxx.lib,不要把xxx.dll填进去,因为编译器是链接lib文件而不是dll文件.

其他的就不怎么常用了.这里先不介绍了.

编译完执行脚本

在VS设置里可以设置编译完在执行的脚本,执行脚本的格式是 bat批处理格式的

举个例子:

编译完这个project把这个dll和lib和一些Utility的其他文件拷贝到另外的地方.


copy $(OutDir)Utility.*  $(SolutionDir)$(Platform)\Offline\

动态库输出在其他文件夹下exe依旧可以链接到

例如:exe在output这个文件夹下,我的动态库不想放到output这个文件夹下,我想放到output/lib这个文件夹下我就可以在我的dll项目这么设置输出目录:


$(SolutionDir)..\output\lib

这样子结合$(OutDir),就可以链接output\lib文件夹下的dll文件了.

如果想lib文件和dll文件分离其实也可以通过配置来实现.

比如

我的build存储我的编译的中间文件,lib存储我编译好的lib文件,output存储我的dll文件和exe文件,也就是以后打包的文件,src是存储我的源码.这些都可以通过上面的配置来实现.可能需要多次尝试.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波雅_汉库克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值