vs工程文件解決方法以及項目之間的關係

首先,新建一個項目,項目名稱爲:測試目錄結構,解決方案名稱爲:TestDirectory  


此時,位置的路徑下,多了一個TestDirectory 文件夾,這個文件夾包含所有解決方案的內容:



而這個TestDirectory 文件夾下 包含了三個對象,其中,TestDirectory.sln 是解決方案  ,還有一個同名的數據庫文件。


上圖中,測試目錄結構文件夾代表整個項目的內容都在這個文件夾,這個文件夾下包含“測試目錄結構”這個項目配置文件,以及一些必要的頭文件和源文件。

在“測試目錄結構”文件夾下的兩個對象:


.vcxproj  表示工程配置文件,若沒有.sln ,可以直接打開。


接下來,在解決方案“TestDirectory”下新建一個項目“測試目錄結構2”



那麼,在"TestDirectory"文件夾下,也會相應的多出一個目錄:



在項目“在測試目錄結構2” 裏面,包含着這個項目的所有內容:


小結:解決方案會對應一個總的文件夾,其下有一個同名的解決方案管理器和不同的項目名稱文件夾。還有,默認情況下,項目屬性設置的目錄起點爲項目屬性文件所在位置,實際上就是項目文件和源文件的位置。


接下來,我們給“測試目錄結構”這個項目添加源文件,爲src.cpp:



編譯或者運行後,可以看到 TestDirectory 文件夾下多出來一個Debug  文件夾,


此Debug目錄下存放生成的結果一個.exe文件, 一個.ilk文件, 一個.pdb文件 

.ilk是一種鏈接臨時文件,只供Link工具使用

.pdb是程序數據庫文件,在建立工程時自動生成,其中存放程序各種調試信息。




再來看測試目錄結構裏面,多了源碼 和 一個Debug文件夾,(如果加了頭文件,也出現在這裏)。源碼即我們剛剛添加的,而這個Dubug文件夾下產生了各種日誌信息


這邊有一個.obj文件,一個.idb文件,還有一個.pdb文件。


接下來,我們在release下測試,將解決方案配置改成release即可,再次運行



在解決方案“TestDirectory”大文件夾下,多出來一個Release文件夾:



而在這個Release文件夾下,有兩個對象,一個是生成的exe文件,一個是.pdb文件,與Debug相比,少了一個.ilk文件:



而在項目“測試目錄結構”文件夾下,也會多出來一個Release文件夾:



這個文件夾下同樣是是生成了一些日誌信息:



在我們對項目"測試目錄結構" 進行清理時,我們發現,Debug或者Release文件夾還在,但是裏面的內容已經全部被清理。



而項目裏面的Debug和Release文件也存在,但是裏面的日誌信息也已經被清除,只存在清理的日誌信息:





小結:清理項目,會清理項目生成的ilk、pdb、exe等文件。


接下來,我們看一下在第一個項目已經存在的情況下,運行第二個項目時,文件夾的變化情況:



可以看到,在同一個解決方案下,不同的項目名稱,代碼的文件名可以一樣。我依次對兩個項目重新生成,可以看到解決方案下的文件夾沒有變:



但是Debug底下,發生了變化,兩個項目的生成信息都在裏面:


當我清除了測試目錄結構2,此時,測試目錄結構2的信息全部被刪除:



接下來測試下一個方案多個項目的運行情況。

首先運行測試目錄結構,成功後,此項目會加粗顯示。



此時,測試目錄結構2 編譯能夠通過,但是無法運行,運行的還會是第一個項目的程序



想要單獨運行一個項目,可以將一個項目設置成啓動項目,設爲啓動項目後,該項目會加粗,然後運行:



全文總結:

一個解決方案會有一個大文件夾,裏面有一個解決方案文件(.sln),還可以包含若干個項目,每個項目單獨一個文件夾,裏面包含了這個項目的全部文件,項目文件夾所在位置的Dubug/Release,存放的是日誌文件。不管在同一個解決方案下有多少個項目,所有的項目生成的exe文件都在解決方案目錄下的Debug/Release下。多個項目可以設置單獨啓動,若想包含,參照多項目包含處理運行資料


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章