Microsoft Visual Studio 文件识别及其用途简述
VS2008 新建項(xiàng)目后會(huì)產(chǎn)生相應(yīng)的文件sln、ncb、suo、以及相應(yīng)項(xiàng)目工程文件夾,項(xiàng)目工程文件夾下包括vcproj、filters、ReadMe.txt、targetver.h、stdafx.h、stdafx.cpp及其他文件;VS2010/VS2010/VS2012/VS2013 新建項(xiàng)目后會(huì)產(chǎn)生文件sln、suo、sdf、ipch文件夾下的ipch文件、項(xiàng)目工程文件夾下包括vcxproj、vcxproj.user、filters、ReadMe.txt、targetver.h、stdafx.h、stdafx.cpp及其他文件;
VS2015 新建項(xiàng)目時(shí)會(huì)產(chǎn)生sln、VC.db、VC.VC.opendb、ipch文件夾下的ipch文件、.vs文件夾下的.suo文件,項(xiàng)目工程文件夾下包括vcxproj、vcxproj.user、filters、ReadMe.txt、targetver.h、stdafx.h、stdafx.cpp及其他文件;
若是MFC工程,可能還有rc、aps、Resource.h文件以及res文件夾下的rc2、ico資源文件等;
此外各個(gè)工程編譯、鏈接、生成過程中的各種中間文件、調(diào)試文件、最終文件等,比較常見的有pdb、ilk、obj、log、pch、exe、lib、dll、exp、manifest;
文件說明
- sln:解決方案文件,主要包括工程項(xiàng)目組織結(jié)構(gòu)、位置、工程編譯環(huán)境配置等信息;
- ncb:(no compile browser)VC++自動(dòng)創(chuàng)建的信息跟蹤文件,可以刪除,重新打開解決方案后會(huì)自動(dòng)再次創(chuàng)建,此文件一般比較大;
- vcproj、vcxproj:項(xiàng)目工程文件,里面包含的該工程的工具集、工程編譯、鏈接、調(diào)試等相關(guān)的配置;不同VS IDE的項(xiàng)目轉(zhuǎn)化,可以通過修改此文件實(shí)現(xiàn),低版本轉(zhuǎn)高版本IDE,則直接打開即可,而高版本轉(zhuǎn)到低版本需要修改工程文件,另外版本間轉(zhuǎn)化可能會(huì)出現(xiàn)某些API使用等限制,可能需要修改、替換;vcproj與vcxproj內(nèi)容、結(jié)構(gòu)還是有所差異,轉(zhuǎn)化時(shí)需要修改的地方比較多,如果修改的地方比較多,可以重新建立工程將相應(yīng)文件添加進(jìn)去,修改工程屬性也可;
- vcxproj.user:不同用戶有不同的本地用戶配置,主要是一些窗體布局、位置等,與項(xiàng)目具體內(nèi)容一般無關(guān),可以刪除;
- aps:主要記錄資源信息, aps?可以刪除,進(jìn)入程序,重新打開解決方案后會(huì)自動(dòng)生成;
- VC.db:SQLite3格式的文件,里面應(yīng)是項(xiàng)目相關(guān)的文件信息,同ncb、sdf文件,一般比較大,可以刪除,重新打開解決方案后會(huì)自動(dòng)創(chuàng)建;
- props/vsprops:工程屬性表文件,后者為vs2008的,前者為vs2010及以后版本的,其主要包含工程屬性配置相關(guān),可以單獨(dú)提取出來供不同工程項(xiàng)目公共使用;
- pdb:調(diào)試的符號(hào)文件,程序數(shù)據(jù)庫 (PDB) 文件保存著調(diào)試和項(xiàng)目狀態(tài)信息,使用這些信息可以對(duì)程序的調(diào)試配置;
- exe:編譯、鏈接后產(chǎn)生的可執(zhí)行文件,當(dāng)然也可以是庫,exe相對(duì)obj來說,前者提供的是絕對(duì)地址,而后者只是提供相好地址;
- obj:c、cpp編譯后的二進(jìn)制目標(biāo)文件,一般提供給IDE鏈接用的,當(dāng)然也可以將其發(fā)給客戶或開發(fā)人員使用并提供h頭文件,不過這樣的做法很少,一般給用戶的是編譯后的dll或exe;
- lib:分為靜態(tài)庫文件和動(dòng)態(tài)庫dll的引入庫文件,前者供其他模塊或程序靜態(tài)鏈接,后者只是提供方便的隱式鏈接而不是調(diào)用LoadLibrary和頻繁的GetProcessAddress;
- dll:動(dòng)態(tài)庫文件,供客戶或其他開發(fā)人員使用,一般附加h頭文件,或者某些還提供lib引入庫或def文件;
- ilk:增量鏈接期間產(chǎn)生的臨時(shí)文件,若取消生成,則可能導(dǎo)致編譯鏈接比較慢;
- log:主要記錄編譯過程中的輸出信息、日志;
- manifest:VS提供的程序部署、清單文件,在早些時(shí)候編譯的Debug或Release版本的程序時(shí)需要提供該清單文件,不過可以通過配置工程屬性實(shí)現(xiàn)程序的內(nèi)嵌該清單文件,此外還可以根據(jù)需要提供額外的其他清單文件;
- rc/rc2:資源文件,應(yīng)用程序中用到的所有的資源,其中rc文件中的資源可以直接在VC集成環(huán)境中以可視化的方法進(jìn)行編輯和修改,rc2則可根據(jù)需要只能手動(dòng)修改,一般使用的時(shí)候可根據(jù)需要在rc文件中包含rc2文件;rc2文件可以單獨(dú)獨(dú)立提出來,供不同工程項(xiàng)目rc文件include使用而不用每個(gè)工程都去創(chuàng)建相同的rc2文件內(nèi)容,不同項(xiàng)目工程應(yīng)有自己的rc文件,事實(shí)上rc文件中還可以包含其他的rc文件;
- ico:應(yīng)用程序的圖標(biāo)資源文件;
- suo:儲(chǔ)存了用戶界面的自定義配置,包括布局、斷點(diǎn)和項(xiàng)目最后編譯的而又沒有關(guān)掉的文件等,以便下一次你打開Visual Studio可以恢復(fù)這些設(shè)置,一般為隱藏文件;
- sdf:解決方案工程信息數(shù)據(jù)庫文件,此文件同ncb文件,都比較大,也可以刪除,重新打開解決方案后會(huì)自動(dòng)創(chuàng)建,主要提供提供的智能感知、代碼恢復(fù)等信息;
- ipch:主要保存預(yù)編譯的頭文件和智能提示信息用的,也可以刪除,重新打開解決方案后會(huì)自動(dòng)創(chuàng)建;
- filters:一般為虛擬目錄,及項(xiàng)目工程解決方案視圖下分類過濾器目錄,一般不要?jiǎng)h除,否則可能導(dǎo)致所有文件雜糅在一起;
- def:一般是用作動(dòng)態(tài)庫導(dǎo)出文件,里面主要包含導(dǎo)出庫名、描述、導(dǎo)出的各個(gè)函數(shù);若不使用export導(dǎo)出函數(shù)或類,可采用def的方式也比較簡單,而且還可以導(dǎo)出相同函數(shù)地址的不同得名稱,其可防止導(dǎo)出函數(shù)重命名,以供其他編程語言或工具使用;
- exp:生成動(dòng)態(tài)庫dll時(shí)的臨時(shí)導(dǎo)出庫,主要用在多個(gè)庫相應(yīng)引用鏈接時(shí),供IDE使用;一般客戶或開發(fā)人員不會(huì)使用到該文件;
其他一些常見的特定文件
- ReadMe.txt:里面主要是一些工程創(chuàng)建時(shí)向?qū)Мa(chǎn)生的各個(gè)文件描述信息;
- targetver.h:主要定義程序運(yùn)行的環(huán)境,如限制程序、定制版本,如WINVER、_WIN32_WINNT、_WIN32_WINDOWS、_WIN32_IE等宏定義,此外有的版本還包括SDKDDKVer.h或WinSDKVer.h平臺(tái)版本控制;
- stdafx.h:包含targetver.h,可定義或聲明一些公用函數(shù)、宏、結(jié)構(gòu)、需要的頭文件等信息,因各個(gè)cpp一般會(huì)包含引用stdafx.h,故以此實(shí)現(xiàn)控制各個(gè)cpp文件中可能用到的宏控制等以及預(yù)編譯;
- stdafx.cpp:很少做其他的用途,一般只是#include “stdafx.h”,已生成pch預(yù)編譯頭,當(dāng)然用戶也可以根據(jù)需要做其他的功能實(shí)現(xiàn)等,采用預(yù)編譯頭文件方式,從而可以加速編譯過程;
- dllmain.cpp:DLL應(yīng)用程序的入口點(diǎn),這里邊可以做一些庫第一次加載、卸載,以及新線程加載該庫時(shí)執(zhí)行的相關(guān)的工作,比如通信socket、某些全局變量、共享資源、掛鉤等管理;
Reference:
1.http://www.cnblogs.com/haomiao/p/5812879.html
總結(jié)
以上是生活随笔為你收集整理的Microsoft Visual Studio 文件识别及其用途简述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡取现利息是多少?信用卡取现问题分析
- 下一篇: 40访问者模式(Visitor Patt