Visual Studio的工作结构:
一个解决方案中包含多个项目,每个项目可以单独生成,
vs项目一个特殊点在于,你不需要把源代码放到项目根目录下,就比如这个项目:
他的根目录下没有任何源代码,但是你可以在vs中打开它并添加源代码,指把放在别处的源码添加到这个项目中,然后编译生成,你在这个项目中如果修改了这些源码,那么修改会作用在这些源码的保存处。
那么毫无疑问,我们可以大概推断一下项目文件的作用,肯定保存了:
1.源代码的位置
2.编译选项(是否启用SDL检查,使用哪个编译器,include path)
但生成的exe并不保存在项目中,而是保存在解决方案中
项目根目录中也会有一个x64\Debug,但其中并没有存放生成的exe,那么具体存放的是什么我目前也不太清楚
不过显然是不建议把别处的代码添加进当前项目中,因为这可能造成多个项目修改同一份代码的冲突
直接打开一个项目:
打开一个项目的根目录,直接点.vcxproj打开这个项目是可以的,vs会自动创建一个临时解决方案,和该项目同名
移除项目:
我们有时候不会写代码,会找一个别人的项目一边参考一边改写,我喜欢把两个project放在一个解决方案里,这样便于移动文件和反复对比调试,但是这样会造成一个缺点:混淆,
你来ConsoleApplication1里用ctrl+left click去查看某个函数的定义时,能找到在ConsoleApplication2的定义,这是不合理的,但是这个查找就是在整个解决方案范围内的查找
所以你可以改设置,修改查找东西的范围,只在当前项目里查
即使你已经将ConsoleApplication移除,查函数定义的时候仍然能查到其中的定义,只是你去点的话那么这个cpp文件会以杂项文件的身份被打开,目测这是vs的一个bug,因为既然“移除"那就是我想将这个项目从当前解决方案中抹去,不再想要它的任何信息出现,然后你这样弄得就跟这个项目阴魂不散一样。解决办法就是找到解决方案的目录,然后删除掉.vs文件夹,然后重新打开解决方案。
解决方案:
解决方案根目录下会有:
.vs
x64
.vs文件是保存解决方案配置信息,你都添加了哪几个项目,哪个项目被设为启动项目,你解决方案都开了哪几个窗口,设置了哪些断点。
x64目录下只有Debug目录,其中,对每个项目保存有一个exe和一个pdb,exe毫无疑问就是这个项目编译链接生成的可执行文件,pdb肯定就是一些额外信息