Visual Studio 2013新建工程导入现有代码文件夹并且保持目录结构

本文介绍如何在Windows环境下使用Visual Studio 2013编辑Linux源代码并保持原有目录结构,涵盖项目创建、文件管理及解决头文件兼容性问题。

本文提供了一个在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解决方案文件即可

### 如何在 Visual Studio 中创建和管理项目文件夹 #### 创建新文件夹 为了在 Visual Studio 2010 中创建新的文件夹,可以在解决方案资源管理器内右键点击所需位置,选择“添加”,再选择“新建文件夹”。这会向项目的逻辑结构中加入一个新的虚拟文件夹[^1]。 需要注意的是,在某些版本的 Visual Studio 中,所创建的这些文件夹仅存在于解决方案视图里,并不对应实际磁盘上的物理文件夹;它们被称为解决方案文件夹。对于希望在硬盘上也形成相应层次的情况,则需通过操作系统本身或是特定命令来实现真正的文件夹建立[^4]。 #### 添加现有文件夹至项目 当已有外部文件或文件夹要纳入当前开发环境中时,可以通过拽方式或者是菜单栏里的“添加->现有项...”功能完成导入工作。不过要注意区分是否勾选了选项对话框内的设置使得新增加的内容能够按照原路径保持关联还是复制一份副本工程内部存储空间[^3]。 #### 组织多工程项目下的文件夹架构 在一个包含了多个子系统的大型应用构建过程中,良好的组织形式至关重要。可以依据不同模块的功能特性划分成若干独立部分放置于各自的容器之下以便维护者快速定位查找目标组件。例如按业务领域分组或将公共依赖提取出来单独存放等策略均有助于提高协作效率降低耦合度[^2]。 ```csharp // 示例代码展示如何遍历指定目录获取所有.cs源码文件列表 using System; using System.IO; class Program { static void Main() { string path = @"C:\MyProject\SourceCode"; foreach (string file in Directory.GetFiles(path, "*.cs", SearchOption.AllDirectories)) { Console.WriteLine(file); } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值