<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                上一篇文章[帶你玩轉Visual Studio——帶你管理多種釋出版本](http://blog.csdn.net/luoweifu/article/details/48912241)讓我們了解了Debug與Release的區別,并學會也如果管理 多個不同釋出版本的配制項。在一個大型的項目中,往往不止一個工程,而會有多個工程相互關聯,每個工程也都會有自己的釋出版本,這就是這篇文章將要講述的內容。 # 一個Solution多個Project ## 多個工程簡介 在[帶你玩轉Visual Studio——帶你新建一個工程](http://blog.csdn.net/luoweifu/article/details/48692267)一文中提到一個Solution(解決方案)可以有多個Project(工程),那什么時候需要有多工程呢? 多工程又有什么好處呢? **應用場景:**當一個項目由多個不同的組件(模塊)構成時,為每一個組件創建一個工程,所有的組件工程在同一個解決方案下。? **優點:**結構清晰,可進行分模塊開發,對復雜程序進行解耦。 ## 創建一個多工程項目 我們還是以Utils這個工程為例,在[帶你發布自己的工程庫](http://blog.csdn.net/luoweifu/article/details/48895765)一文及上一篇[帶你管理多種釋出版本](http://blog.csdn.net/luoweifu/article/details/48912241)中已經創建了一個Utils工程,并為它編譯出了多個版本的庫,但我們使用這個庫的時候卻是在另一個Solution下進行的,其實我們完全可以而且也應該把使用Utils庫的工程與Utils工程放在一個解決方案下。 1. **新建Project添加到已有Solution中**,File->New->Project… 打開新建工程對話框新建一個UsingUtils工程,注意在Solution這一欄中我們選擇Add to solution。? ![](https://box.kancloud.cn/2016-01-19_569dd03a9442f.jpg)? 添加一個工程 2. **添加引用關聯**,這時我們要使用這個Utils編譯出來的庫,配制也要簡單一點了。右鍵UsingUtils工程->Properties->Common Properties->Framework and references,添加引用(依賴)的工程Utils。設置引用關聯后,如果Utils工程發生改動或更新,在編譯UsingUtils工程時就會重新編譯Utils工程。? ![](https://box.kancloud.cn/2016-01-19_569dd03aaa3ed.jpg) 添加引用關聯 3. **設置頭文件的路徑**。? ![](https://box.kancloud.cn/2016-01-19_569dd03ac221a.jpg) 設置頭文件的路徑 4. **設置啟動工程**,在有多個工程的Solution中要設置啟動工程(也就是要第一個開始執行的工程),不然你按F5運行時不知道從哪個工程開始執行。選擇UsingUtils工程名右鍵鼠標->Set as Startup Project。然后就可以執行或調試UsingUtils工程了。 # 編譯結果和目錄管理 在多個組件同時開發時,把相關的Project放在同一個Solution下會方便很多。但你有沒有發現一個新的問題,如果一個Solution有很多的Project,每一個Project目錄下都會有一個編譯結果的目錄,如下圖這樣你昏不昏?? ![](https://box.kancloud.cn/2016-01-19_569dd03ad5ffc.jpg)? 編譯結果目錄 那如何管理這些目錄,使這些目錄看起來不這么混亂呢?其實我們是可以設置這些目錄的輸出路徑的,可以把它們放在一起管理。我們可以將輸出目錄設計成這樣: * Utils? * Utils * UsingUtils * Output? * Win32? * Debug? * Bin * Lib * Temp * Release? * Bin * Lib * Temp * Linux? * Debug? * Bin * Lib * Temp * Release? * Bin * Lib * Temp 這樣看起來是不是結構清晰多了!Output為輸出目錄,Win32為Windows X32下編譯的結構,Linux為Linux平臺下的編譯結果(這個涉及到跨平臺開發,暫時不談),Win32下再有Debug和Release等多個不同的釋出版本,Bin下放置編譯出的最終結果(如.exe等),Lib下放置編譯出的所有.lib文件,Temp放置編譯過程的臨時文件(如.obj等)。 我們還是以Utils為例進行說明。Utils Solution下有兩個Project:Utils(編譯出Utils工具庫)和UsingUtils(使用Utils的庫),僅以釋出Debug_Static進行說明,其它的釋出方式與此類似。 1. **所有Project使用同一組配制項。**? 什么意思呢?我們在[帶你玩轉Visual Studio——帶你管理多種釋出版本](http://blog.csdn.net/luoweifu/article/details/48912241)一文說到Debug和Release就是一組配制項,其實整個Solution有一個配制項,每一個Project也有自己的配制項。? 整個Solution的配制項也就是下圖工具欄中你能看到的這些配制項:? ![](https://box.kancloud.cn/2016-01-19_569dd03ae63ea.jpg)? Solution的配制項 而每一個Project的配制薦是你右鍵工程名->Properties能看到的配制項:? ![](https://box.kancloud.cn/2016-01-19_569dd03b04bc7.jpg) Project的配制項 一般一個Solution下的所有的Project最好使用同組配制項,這樣不容易混亂。 2. **給UsingUtils添加Debug_Static配制項。**我們設置Utils的屬性時已經配制了Debug_Static的配制項,并設置了Solution的Debug_Static配制項,再給UsingUtils添加Debug_Static的配制項。? ![](https://box.kancloud.cn/2016-01-19_569dd03b15284.jpg) 添加配制項 標“4”的Create new solution configurations表示為整個Solution也添加(Debug_Static)配制項,這個復選框得取消勾選,因為設置Utils時已經為Solution默認添加了Debug_Static配制項,不然會添加不上。 3. **設置Utils的輸出路徑**,右鍵Utils工程->Properties進行如下配制。? ![](https://box.kancloud.cn/2016-01-19_569dd03b2a0d3.jpg) 設置輸出路徑 4. **拷貝導出庫.lib**,我們可以將Utils編譯出的靜態庫拷貝Utils.lib到Lib目錄下,這樣我們就可以直接把這個文件提供到調用方使用。? ![](https://box.kancloud.cn/2016-01-19_569dd03b3d2fe.jpg) Build Events中可以設置編譯前、鏈接前、編譯后要進行的處理事件。這里我們目地是編譯后將編譯出的Utils.lib拷貝到Lib文件夾下,所以我們在Post-Build Event輸入以下命令 ~~~ :如果Lib目錄不存在,側創建這個目錄 if not exist $(SolutionDir)Output\Win32\$(Configuration)\Lib md $(SolutionDir)Output\Win32\$(Configuration)\Lib :將(ProjectName).lib文件拷貝到Lib目錄下 copy /y $(SolutionDir)Output\Win32\$(Configuration)\Bin\$(ProjectName).lib $(SolutionDir)Output\Win32\$(Configuration)\Lib\ ~~~ 1. **設置UsingUtils的輸出路徑**,與Utils類似如下:? ![](https://box.kancloud.cn/2016-01-19_569dd03b5304d.jpg) 設置UsingUtils的輸出路徑 2. **設置完成**,Ok,編譯一下再來看看輸出結果目錄,是不是清晰多了!? ![](https://box.kancloud.cn/2016-01-19_569dd03b692a2.jpg)? 新的輸出結果目錄 上一篇回顧:? [帶你玩轉Visual Studio——帶你管理多種釋出版本](http://blog.csdn.net/luoweifu/article/details/48912241) 下一篇要講述的內容:? 帶你玩轉Visual Studio——帶你理解微軟的預編譯頭技術
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看