首先,我们一般不会修改解决方案的属性,而是设置每个项目各自的属性.
接着上一篇文章,我们来看看我们应该怎样来设置各项目的项目属性更好:
我们以NYOJ_001项目的Debug版的设置为例:
在常规选项里,我们一般会设置输出目录(即生成.exe文件的目录),中间目录(即中间文件的目录)。当然你也可以在这里设置生成的.exe文件的文件名甚至扩展名等。
如下图所示:
一般设置如下的目录:如果不记得某个宏变量的值,可以点击“宏(M)>>”来查看。
既然我们修改了输出文件的目录,那我们也必须修改我们的调试目录,不然就无法调试了。不信你运行一下试试,虽然编译通过了,但并没像你想的那样出现控制台的“黑窗口”,原因就是我们没有修改调试目录:
将调试目录修改为$(OutDir)就可以了,$(OutDir)就是我们之前在常规里设置的输出文件的目录:
这里面的命令参数一项也是比较重要的,如果你开发的是一个带有命令行参数的项目,你调试的时候就可以在这里设置传给程序的命令行参数来进行调试了。你是否还记得你运行一个带有命令行参数的程序时是出现一个黑框框然后马上就消失了,什么也不会做,除非你是将该程序拖到命令提示符下运行。
这些设置完后,可以先编译运行一下程序,结果如下所示:
程序可以正常调试,还会在解决方案的根目录下生成我们设置的输出文件的目录:Win32\Debug\Bin,生成的.exe文件就在该目录下。还有中间文件目录:Win32\Debug\XXX,里面放的都是生成的中间文件。如果你的这个项目里用到了其他的库,你还需要像下面这样设置你的项目的附加包含目录和附加库目录:前都是设置其他库的.h头文件的目录,一般放在库的include文件夹下。后者是设置其他库的lib以及.dll链接库的目录,一般放在库的lib下。如下:
最后你还必须设置项目的附加依赖项的值:一般设置的就是xx.lib静态链接库的名称
好了,所有必须设置的都已经设置完成了。
下面还有一个非常有用的设置,我们知道当我们的程序使用在其他的库的dll文件时,在程序的当前目录或环境变量指定的目录中必须能够找得到这些.dll文件,即现在我们打开.exe文件所在的Bin文件夹,双击运行程序,除非你设置了所依赖的dll的环境变量,否则程序仍然无法运行,因为程序无法找到dll模块。你可以手动把这些.dll拷贝到.exe文件所在的文件夹,但现在有一个更好的办法,如下图:
我们可以在上面的命令行中填写我们在重新生成完程序后,执行的命令。我们可以在这里使用copy命令,来将程序需要的.dll文件自动拷贝到.exe文件所在的目录。当然,在这里你可以做更多的事情,比如如果你的程序需要读取配置文件,你也可以把配置文件拷贝过来等。
最后,把配置由Debug改变Release再将Release下的所有这些设置重新设置成Debug相同的就可以了。
路径推荐使用编译器提供给我们的宏变量,而尽量不要使用绝对的名称,这样程序更具有移植性。例如,如果某外部库的目录为Win32\Debug与Win32\Release或Win64\Debu与Win64\Release。这样我们使用$(Platform)\$(Configuration)进行设置的时候就不需要再去管什么平台以及是Debug还是Release版本。因为编译器会自动为我们切换,当选择Debug进行编译时,编译器会自动链接到Debug版本,当选择Release进行编译时,会自动链接到Release版本。
还要注意的就是,如果有某些项目是作为导出链接库用的。需要把导出的dll, lib(即输出文件路径)设置到上面的Bin目录下。然后在需要使用导出的dll和lib文件的项目中设置
项目依赖项这前者,并设置附加库目录和附加依赖项。这样可以很方便的使用同一解决方案中其他项目导出的链接库了。
以上就是我们一般需要设置的项目属性。