標籤:
本文提供了一個在Windows環境下使用Visual Studio 2013編輯現有原始碼並且保持目錄結構的方法。
本文使用VS2013中文社區版做樣本(本版本為免費版,可在VS官網下載),其他版本的VS操作方式類似。
- 開啟VS2013,選擇【菜單】-【檔案】-【建立】-【從現有代碼建立項目】
- 專案檔位置:建立完成後會在這個目錄產生sln,suo,vcxproj,filters和user等VS解決方案和專案檔,這個必須和原始碼的根目錄保持一致,否則不能匯入檔案夾結構。
- 項目名稱填所需項目
- 最後去除勾選【在方案總管中顯示所有檔案】,避免檔案太多
- 因為代碼是Linux代碼,並不需要在Windows下編譯,所以選擇使用外部產生系統即可
- 如果源檔案來源於網路映射盤(比如筆者這裡使用的是Linux的Samba共用磁碟),會彈出安全警告,去除勾選選擇確定即可。
- 項目建立好後,在方案總管中會出現所有篩選過後項目目錄的源檔案,是未分檔案夾的。如果看不到方案總管,可以在【菜單】-【視圖】中開啟。
- 上面不分檔案夾的源檔案並不是我們想要的,如果需要分檔案夾,在方案總管中點擊【顯示所有檔案】表徵圖,如所示。點擊之後,會出現檔案夾。並且會在檔案表徵圖上標示出該檔案是否屬於專案檔。
- 如果原始碼路徑檔案有更新,比如增加或者刪除檔案,在方案總管中點擊重新整理按鈕,即可看到最新的檔案狀態。如果要將新檔案添加進項目進行管理,則在新檔案上點擊右鍵,選擇【包括在項目中】即可,添加後檔案表徵圖也會做出相應改變。
- 由於原始碼是Linux下,Linux的標頭檔與VS預設的標頭檔不一致,會導致很多標頭檔找不到或者是不匹配,影響代碼提示和閱讀。解決方案是添加Linux的標頭檔到Include路徑。下面是具體操作方法:
- 在方案總管中右鍵項目,選擇【屬性】。
- 在彈出的屬性頁面中,找到VC++目錄,其中的包含目錄填上Linux下的標頭檔目錄。
- 關於Linux的標頭檔如何獲得,可以在Linux下使用Samba服務端,在Windows上串連,將下面3個路徑複製到Windows系統相應目錄即可,最好linux下複製一個,就在windows下複製一份,否則一些檔案可能會被後續的複製操作覆蓋。
- 複製完成後,將下面的路徑粘貼至VS中即可(64位),其中【D:\Code\Linux\Ubuntu\】為Windows下對應Linux的根目錄
1
2
3
4
5
6
7
8
D:\Code\Linux\Ubuntu\usr\include\c++\4.8;
D:\Code\Linux\Ubuntu\usr\include\x86_64-linux-gnu\c++\4.8;
D:\Code\Linux\Ubuntu\usr\include\c++\4.8\backward;
D:\Code\Linux\Ubuntu\usr\lib\gcc\x86_64-linux-gnu\4.8\include;
D:\Code\Linux\Ubuntu\usr\local\include;
D:\Code\Linux\Ubuntu\usr\lib\gcc\x86_64-linux-gnu\4.8\include-fixed;
D:\Code\Linux\Ubuntu\usr\include;
D:\Code\Linux\Ubuntu\usr\include\x86_64-linux-gnu;
- 修複VS中__cplusplus宏固定為199711L導致無法識別C++11新增特性的辦法
比如<unordered_set>標頭檔中,定義了如下語句,導致VS包含的實際上是一個c++0x_warning.h的檔案,無法真正識別unordered_set的實現: 1
2
3
#if __cplusplus < 200311L
# include <bits/c++0x_warning.h>
#else
在網上找了很久,也沒找到修改VS內建__cplusplus宏的方法,只能曲線救國了,即將所有標頭檔中200311L改成199711L即可,具體操作如下:
- 建立完成後專案檔目錄會產生以下專案檔,以後需要開啟項目直接雙擊sln解決方案檔案即可
Visual Studio 2013建立工程匯入現有代碼檔案夾並且保持目錄結構