Visual Studio 2013新建工程導入現有代碼文件夾並且保持目錄結構


本文提供了一個在Windows環境下使用Visual Studio 2013編輯現有源代碼並且保持目錄結構的方法。

本文使用VS2013中文社區版做示例(本版本為免費版,可在VS官網下載),其他版本的VS操作方式類似。

  • 打開VS2013,選擇【菜單】-【文件】-【新建】-【從現有代碼創建項目】

  • 選擇項目類型:Visual C++

  • 項目文件位置:創建完成后會在這個目錄生成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下復制一份,否則一些文件可能會被后續的復制操作覆蓋。
    • 1

      2

      3

      cp -r /usr/include ~/1

      cp -r /usr/lib/gcc/ ~/2 #這個目錄可能稍有變化,也許是/usr/lib64/gcc

      cp -r /usr/local/include ~/3

  • 復制完成后,將下面的路徑粘貼至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即可,具體操作如下:

    • 將復制到Windows下的頭文件路徑重新打包(比如:D:\Code\Linux\Ubuntu\)在Linux下解壓后執行:
      sed -i "s/201103L/199711L/g" `grep "201103L" -rl *`

    • 執行后將源文件復制回來即可。
  • 創建完成后項目文件目錄會生成以下項目文件,以后需要打開項目直接雙擊sln解決方案文件即可


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM