青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

平凡的世界

神鷹忽展翅,頭頂青天飛
隨筆 - 10, 文章 - 0, 評論 - 34, 引用 - 0
數據加載中……

軟件工程配置規范(VC2005) 第二版

版本號

日期

修改者

說明

備注

0.1

2010.07.13

phoenix

   

0.2

2011.01.12

phoenix

   
         
         
         


目 錄

1. 引言... 1

1.1. 編寫目的.. 1

1.2. 參考資料.. 1

2. 目錄結構... 1

3. 工程配置... 2

4. 屬性配置... 2

4.1. “常規”配置.. 2

4.2. “調試”配置.. 2

4.3. “C/C++”配置.. 3

4.4. “鏈接器”配置.. 3

4.5. “生成事件”配置.. 3

5. 附錄:VC2005中可以使用的宏... 3

1.引言

1.1.編寫目的

當開發人員開始進行編碼工作以及編碼工作的過程中,都需要根據工程的需要配置各種工作路徑,如引入第三方庫、輸出生成的頭文件和庫文件等。以前部分開發人員對工程路徑的定義比較隨意,相當一部分使用的是絕對路徑。如果只是單個開發人員完成一個單一的功能,這種做法看起來沒有什么明顯的缺點。但是,如果是數個開發人員來合作共同完成一個功能和結構都很復雜的工程時,這種做法的弊端就凸顯出來。一個非常明顯的問題就是:開發人員A將他的工程交給開發人員B編譯時,如工程定義使用了絕對路徑,除非開發人員B的計算機與A的計算機具有完全相同的文件組織結構,否則一次性編譯通過是不可能。另外,當開發人員在一長串的“Can’t find …”或者“XXX undefined”的錯誤與警告中焦頭爛額時,也許只是因為一個不起眼的地方使用了絕對路徑,或者是大小寫的差異。

因此,規范開發人員的工程配置是很有必要的。通過規范的工程配置,所有開發人員之間的工程是無縫銜接的,即任何一個開發人員的工程拿到其他人的工程時,無須修改任何一個配置便可以一次性的編譯成功。這樣的規范操作無異可以大大減少團隊成員通過代碼交流時的不必要成本。另外,規范的工程配置也便于SubVersion版本控制系統的引入,通過引入SubVersion版本控制系統,可以協調整個研發團隊的工程進度,控制產品的里程碑發布。這一切,都從規范的工程配置開始。

1.2.參考資料

1. 《OpenSource SubVersion規范》

2. 《Visual Studio 2005編程指南》

2.目錄結構

MyDevelopeFolder

├─Bin

│ ├─Debug

│ ├─Program

│ ├─Release

│ ├─UnicodeDebug

│ ├─UnicodeProgram

│ └─UnicodeRelease

├─MySDK

│ ├─Include

│ │ ├─BCG

│ │ └─Boost

│ └─Lib

│ ├─Debug

│ │ ├─BCG

│ │ └─Boost

│ ├─Program

│ │ ├─BCG

│ │ └─Boost

│ ├─Release

│ │ ├─BCG

│ │ └─Boost

│ ├─UnicodeDebug

│ │ ├─BCG

│ │ └─Boost

│ ├─UnicodeProgram

│ │ ├─BCG

│ │ └─Boost

│ └─UnicodeRelease

│ ├─BCG

│ └─Boost

├─Project

│ ├─LibMyExample

│ │ └─Document

│ └─MyExampleApp

│ └─Document

├─Solution

└─Temp

├─Compile

└─Link

1. MyDevelopeFolder是開發工程的根目錄

2. Bin目錄存放所有動態鏈接庫和可執行程序,包括自己的產出和第三方庫,按編譯配置名稱包括對應的子目錄,如Debug、Release。另外,程序運行過程中需要外部的數據文件和啟動時需要的配置文件等等都可放于該目錄

3. MySDK存放產品項目依賴、產出的.h文件和.lib文件。其中Lib目錄下根據配置名稱和第三方庫名稱對lib文件進行管理。如某項目使用BCG作為界面庫,則BCG的頭文件放置于“Include\BCG”下,不同版本的庫文件置于“Lib\配置名\BCG”下;項目輸出的lib文件直接位于“Lib\配置名”下。這樣產品依賴的不同開發庫所使用頭文件與庫文件和輸出的頭文件與庫文件相互之間是獨立、彼此不干涉的。

4. Project是工程目錄,用于存放代碼,按模塊名組織次級目錄。功能庫工程一般的以“Lib”開頭,以便與其它動態庫區別。每個工程模塊目錄應包含“Document”子目錄,該目錄下按需要增加“DBM”、“DOC”、“UML”三個子目錄。“DBM”用于存放與該模塊相關的數據庫設計文檔,通常是PowerDesigner文檔;“DOC”用于存放與該模塊相關的一般性說明文檔;“UML”用于存放與該模塊相關的UML設計文檔,通常是Rational Rose文檔。

5. Solution是解決方案目錄,用于存放產品的完整解決方案。通常使用解決方案可以生成該產品的所有版本。

6. Temp是用于編譯生成的中間目錄,主要存放編譯過程中生成的各種中間文件。

3.工程配置

根據調試信息與字符集的不同,一般的工程配置有六類,如下表所示

名稱

字符集

是否包含調試信息

是否包含代碼優化

Debug

ANSI

YES

NO

Release

ANSI

YES

YES

Program

ANSI

NO

YES

UnicodeDebug

UNICODE

YES

NO

UnicodeRelease

UNICODE

YES

YES

UnicodeProgram

UNICODE

NO

YES

4.屬性配置

4.1.“常規”配置

輸出目錄: ..\..\Temp\Link\$(ProjectName)\$(ConfigurationName)

中間目錄:..\..\Temp\Compile\$(ProjectName)\$(ConfigurationName)

4.2.“調試”配置

如果需要啟動本模塊進行調試,則“命令”為:..\..\Bin\$(ConfigurationName)\$(TargetFileName)

4.3.“C/C++”配置

1) “附加包含目錄”:..\..\MineSDK\Include ,如有其它目錄請用“;”間隔,注意使用相對路徑,嚴禁使用絕對路徑

2) 動態庫使用導出宏導出/導入時,應在“預處理器”中定義導出宏,不得在代碼文件中定義。導出宏的一般格式為“LIB_XXXXX”。

3) 一般情況下不推薦使用預編譯頭。

4.4.“鏈接器”配置

1) “輸出文件”:

a) 若為Debug版時:$(OutDir)\$(ProjectName)D.dll;

b) 若為Release版時:$(OutDir)\$(ProjectName).dll。

2) “附加庫目錄”:..\..\Bin\$(ConfigurationName);..\..\MySDK\Lib,如有其它目錄請用“;”間隔,注意使用相對路徑,嚴格禁止使用本地絕對路徑。

3) “模塊定義文件”:一般不使用模塊定義.def文件,本項可選擇“從默認配置…”。

4.5.“生成事件”配置

一般需要配置的是“生成后事件”。任何一個工程模塊的生成后事件都應包括以下內容:

1) copy $(TargetPath) ..\..\Bin\$(ConfigurationName)

2) 若有導出的Lib庫文件,需要增加:copy $(TargetDir)$(TargetName).lib ..\..\MySDK\Lib

3) 若有導出的頭文件,需要增加: copy myhead.h ..\..\MySDK\Include

具體文件名與路徑視情況而定,但是嚴禁使用絕對路徑。

5.附錄:VC2005中可以使用的宏

ConfigurationName

配置名字,通常是Debug或者Release

IntDir

編譯器使用的中間目錄,產出obj文件

OutDir

鏈接器使用的輸出目錄

ProjectDir

項目目錄

ProjectName

項目名字

SolutionDir

解決方案目錄

TargetDir

目標輸出文件所在的目錄

TargetExt

目標輸出的擴展名

TargetFileName

目標輸出文件名,包括擴展名

TargetName

目標輸出名,不包括擴展名

TargetPath

目標輸出文件的全路徑名

posted on 2011-04-03 18:58 西門有悔 閱讀(2203) 評論(6)  編輯 收藏 引用

評論

# re: 軟件工程配置規范(VC2005) 第二版  回復  更多評論   

希望可以放出pdf版,這樣方便使用……
2011-04-03 20:19 | 御用軟件

# re: 軟件工程配置規范(VC2005) 第二版  回復  更多評論   

個人非常討厭什么 bin,source,solution,。。。
你要么就純粹自己搞,bin、source 都可以,就別 solution、project 了,最后自己寫腳本
要么就用 solution、project,目錄就大體上按默認的,一個project一個目錄,
既用 solution、project,又獨立搞一套目錄體系,然后修改一大堆純粹關于目錄的配置參數,何必呢
2011-04-03 21:52 | 溪流

# re: 軟件工程配置規范(VC2005) 第二版  回復  更多評論   

@溪流
1.Bin里是所有生成的文件,包含了程序可以運行的最小資源,產品發布人員只需要將Bin里的文件打包就可以生成安裝文件。而默認的配置會在bin目錄里生成程序調試數據庫等一些非運行時需要的文件。Bin是面向產品測試與發布人員的,開發人員只是將dll和exe輸出到bin中進行調試。這樣使產品開發與產品測試、發布分開。
2.Project與Solution分開是因為每個成員都是獨立地開發一個或幾個Project的,他把Bin與SDK從SVN上checkout出來,就可以進行自己的代碼編寫,而不必關心與其他開發人員所同時進行的project的依賴關系。Solution里包含的是整個產品的所有project以及project之間的依賴關系。打開solution就可以生成一個完整的產品到bin里,而且bin里沒有任何多余的文件。

效果:采用了這套工程配置方法,整個團隊代碼與工程層面的交流明顯順暢多了,再也沒有出現拿到別人的工程半天build不過的問題。而且開發與測試、發布之間的卸接也很順利。開發人員每天都build后commit到svn。每周一開發部產品管理員用solution生成一個完成的bin并整理出track后發布到Svn上,測試人員用本周一的bin進行測試,到了Tag的時間點測試部產品管理員將bin打包成安裝程序發布到svn上并通知實施部門有更新版本。形成一個完整的流程。再用bugzilla與dotproject對產品的bug和人員進行管理。

總結:這套工程配置應該算是不依賴于第三方工具,進行基于Svn的代碼管理以及多個開發人員之間的合作開發。如果是一個人,或者project不多的時候就沒必要如此復雜。而且修改工程配置是一次的,不需要每次都修改。可以說一勞永逸。

謝謝你的評論。
2011-04-04 00:43 | 西門有悔

# re: 軟件工程配置規范(VC2005) 第二版  回復  更多評論   

1、打包人員不該偷懶,他們應該知道完整的精確的文件清單,而不僅僅是“某個目錄下的所有文件”
2、還是沒有看出來把solution單獨藏在一個目錄的用意。
2011-04-04 11:58 | 溪流

# re: 軟件工程配置規范(VC2005) 第二版[未登錄]  回復  更多評論   

可參考 chrome 或者 svn烏龜 等開源項目的目錄組織,
我們都是每天自動構建, 自動生成安裝包等
2011-04-06 08:56 | chentan

# re: 軟件工程配置規范(VC2005) 第二版  回復  更多評論   

@溪流
打包人員不該偷懶,他們應該知道完整的精確的文件清單,而不僅僅是“某個目錄下的所有文件”

他們通常不知道 你也很難讓他們知道
2011-04-07 12:44 | houwukong
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美精品网站| 欧美亚洲视频一区二区| 蜜乳av另类精品一区二区| 国产一区二区三区久久悠悠色av | 亚洲国产精品一区二区www| 欧美一区影院| 亚洲三级性片| 亚洲男女自偷自拍| 亚洲国产一区二区三区a毛片| 欧美激情国产日韩| 国产精品国产自产拍高清av| 性色av香蕉一区二区| 亚洲欧美日韩国产一区二区| 亚洲欧洲日本国产| 亚洲精品一区二区网址| 国产精品永久免费观看| 亚洲国产精品久久久久秋霞蜜臀| 国产精品xnxxcom| 亚洲高清二区| 红桃视频国产一区| 中文一区字幕| 一区二区三区欧美在线| 欧美不卡视频一区发布| 欧美一区免费视频| 国产精品都在这里| 亚洲午夜女主播在线直播| 久久久久一区二区| 久久超碰97人人做人人爱| 欧美日韩国产限制| 亚洲激情网站免费观看| 亚洲高清激情| 欧美成人精品一区二区| 久久综合给合久久狠狠狠97色69| 国产精品免费观看视频| 亚洲欧美日韩精品久久久| 欧美69视频| 欧美一区二区三区免费在线看| 欧美激情亚洲一区| 亚洲人屁股眼子交8| 亚洲一区二区欧美日韩| 欧美色播在线播放| 99精品免费视频| 久久激情网站| 18成人免费观看视频| 欧美jjzz| 欧美在线视频a| 欧美激情影音先锋| 亚洲欧美日韩一区| 亚洲国产婷婷香蕉久久久久久| 性做久久久久久久免费看| 欧美电影在线观看| 亚洲综合不卡| 亚洲欧洲在线一区| 国产日韩欧美精品| 欧美激情一二区| 久久精品国产99精品国产亚洲性色 | 国产偷久久久精品专区| 欧美电影免费观看高清| 亚洲综合成人在线| 亚洲七七久久综合桃花剧情介绍| 久久精品国产清自在天天线| 久久影院午夜片一区| 一本一本久久a久久精品综合麻豆| 久久精品天堂| 欧美一区二粉嫩精品国产一线天| 日韩视频免费观看高清在线视频| 国产视频在线观看一区二区| 国产精品a级| 国产精品人人做人人爽人人添| 欧美精品性视频| 欧美日本一区| 欧美三区美女| 国产农村妇女毛片精品久久莱园子| 欧美大成色www永久网站婷| 久久九九热re6这里有精品| 亚洲综合电影一区二区三区| 亚洲欧美一区二区三区在线| 亚洲视频一二区| 午夜欧美大片免费观看| 欧美亚洲尤物久久| 久久综合图片| 欧美日韩国产在线| 国产亚洲欧美激情| 樱桃国产成人精品视频| av成人福利| 久久成人免费电影| 亚洲精品久久久久久久久久久久久| 亚洲国产精品免费| 先锋影音网一区二区| 免费观看日韩| 国产精品一卡二卡| 一区二区冒白浆视频| 久久久久久夜| 亚洲主播在线播放| 欧美在线观看视频一区二区三区| 久久亚洲精品欧美| 国产精品一区在线观看| 99热这里只有精品8| 葵司免费一区二区三区四区五区| 亚洲人成网站色ww在线| 亚洲国产精品精华液网站| 欧美一区二区三区视频免费| 亚洲日本在线视频观看| 午夜久久久久| 亚洲欧美成人综合| 欧美人体xx| 亚洲欧美成人综合| 一区二区三区欧美在线| 欧美片第一页| 在线综合亚洲| 亚洲一区二区免费在线| 欧美视频在线观看一区| 宅男噜噜噜66一区二区| 9人人澡人人爽人人精品| 欧美高清不卡| 亚洲淫性视频| 亚洲一区综合| 加勒比av一区二区| 欧美1级日本1级| 欧美日韩精品免费观看视频完整| 亚洲精品欧美极品| 亚洲手机在线| 在线成人h网| 亚洲精品少妇30p| 国产精品视频xxxx| 欧美v国产在线一区二区三区| 久久久亚洲影院你懂的| 一区二区欧美日韩| 久久精品夜色噜噜亚洲aⅴ| 亚洲美女在线国产| 久久大逼视频| 午夜视频一区| 欧美激情视频一区二区三区免费| 亚洲中无吗在线| 免费永久网站黄欧美| 久久超碰97人人做人人爱| 欧美精品激情blacked18| 久久精品国产综合| 欧美日韩亚洲一区| 欧美激情在线观看| 国模一区二区三区| 一本久道综合久久精品| 在线精品亚洲| 欧美一区2区视频在线观看| 中文亚洲欧美| 欧美日韩情趣电影| 日韩视频免费观看高清完整版| 在线不卡a资源高清| 久久视频在线免费观看| 欧美一区二区高清在线观看| 精品999在线观看| 欧美福利在线| 在线观看91精品国产麻豆| 一区二区三区欧美在线观看| 99精品视频免费观看| 久久亚洲国产精品日日av夜夜| 久久中文欧美| 亚洲黄色高清| 欧美日韩不卡| 一区二区成人精品| 久久国产精彩视频| 黄网动漫久久久| 欧美精品亚洲一区二区在线播放| 亚洲精品午夜精品| 欧美一区二区三区免费观看| 国产在线精品成人一区二区三区| 久久久久久亚洲精品杨幂换脸| 亚洲国产人成综合网站| 亚洲精品国产欧美| 国产伦精品一区二区三区视频孕妇 | 久久人人爽人人爽爽久久| 欧美激情影院| 欧美中文字幕第一页| 亚洲精品1区2区| 国产精品有限公司| 欧美刺激午夜性久久久久久久| 一卡二卡3卡四卡高清精品视频| 久久免费高清视频| 亚洲五月六月| 亚洲免费久久| 亚洲福利视频一区| 尤物在线精品| 国产亚洲精品美女| 国产欧美精品日韩区二区麻豆天美| 鲁鲁狠狠狠7777一区二区| 久久黄色级2电影| 亚洲欧美日韩精品在线| 亚洲中字黄色| 亚洲欧美日韩综合一区| 亚洲综合不卡| 久久av一区二区三区亚洲| 午夜精品久久久久久久蜜桃app| 一区二区高清视频| 亚洲三级观看| 亚洲精品一区二区三| 一本色道久久综合亚洲精品高清 | 老色鬼精品视频在线观看播放| 欧美一级午夜免费电影| 欧美一区二区三区视频免费播放| 午夜宅男久久久|