背景
随着学习使用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文件夹下.
$(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文件.
其他的就不怎么常用了.这里先不介绍了.