如何在Microsoft Visual Studio中使用GCC?

我正在创build一个非常大的项目(几千行),所以宁可不要使用Notepad ++。 一个IDE会让它变得更容易。 我有微软Visual Studio的经验,并喜欢它。 在Microsoft Visual Studio中使用Cygwin的GCC有一些简单的方法吗?

或者,除了NetBeans和Eclipse之外,GCC还有其他一些好的Windows IDE吗? (我热衷于讨厌他们两个。)

有几种方法可以到这里:

选项1:创建一个自定义生成工具

Visual Studio 2005和更新版本将允许您注册自定义构建工具 。 他们告诉IDE如何将一种形式的文件(例如.cpp文件)转换为另一种形式(例如.obj文件)。

据我所知,还没有人为GCC做过这个工作。 而且,自己做这个事情需要编写COM代码,这个代码可能太深,只能为单个项目着手。 你必须有一个令人信服的理由来开展这个项目。

因此,您必须手动调整每个项目,告诉它使用自定义构建工具而不是默认项目,因为您正在使用Visual C ++已知的文件扩展名( .cpp )。 如果您尝试将VC ++和g ++编译器混合为一个由多个模块构建的可执行文件,就会遇到麻烦。

从好的一面来看,如果你想开始一个开源项目,这对我来说听起来很不错。 我希望你能很快收集到一个庞大的用户群。

选项2:Makefile项目

  1. 启动Visual Studio并说File> New Project。

  2. 在Visual C ++部分,选择生成文件项目

    如果您使用的是Visual Studio Express,请不要选中提供的项目以将项目检入到源代码控制中。 如果您不支付Visual Studio,那么您可能也选择不支付微软昂贵的Team“解决方案”,而VSE不支持第三方VCS插件,例如Subversion的 AnkhSVN 。

  3. 填写生成文件项目向导:

    • 建立命令行: make
    • 清理命令:清理
    • 重建命令行: make clean all

保留Output(仅用于调试)字段,除非您在执行一些奇怪的事情,比如在项目名称后面没有命名可执行文件,或者将可执行文件的名称放在除项目顶层之外的地方。

除非你知道它们是什么以及为什么要改变它们,否则请独自留下其余的字段。 例如,您可以选择在预处理器定义行上传递-D标志,以获得单独的调试和发布输出。 如果你知道你想要这个,你就知道如何设置它,所以我不打算把这个长的答案更长的时间来解释它。 (如果你不知道如何但是又想做什么,那么这可能是一个新的SO问题的好主题!)

您将被问到发布版本的相同问题集。 如果你想打扰单独的调试和发布版本,你可以在这里做任何改变。

完成了所有这些之后,您仍然需要创建Makefile ,并将make.exe添加到PATH 就像调试与发布问题一样,进入这个细节层次将会把这个问题推到主题上。

就像看起来丑陋一样,它比创建自定义构建工具更容易。 另外,你说你最终需要移植到Unix,所以你将需要这个Makefile

选项3:跨平台开发

你说你想把这个程序移植到Unix上,但是这并不意味着你现在必须在Windows上使用GCC。 编写程序是非常有可能的,因此它可以在Windows上的Visual C ++和* ix系统上的GCC / Makefiles下编译。

甚至有几个工具可以简化这个工作,通过从一个公共源代码生成VS项目文件和Makefile 我碰巧使用了Bakefile ,但是近年来CMake变得越来越流行了。 SCons也做这个工作,也可能比Bakefile更受欢迎; 它肯定更新更频繁。

我来自未来。

我使用Win / Lin / Mac上的可视代码和从Choclatey安装的MinGW来保存(戳)C / C ++工具链。 (这完成了我的理智 – 无论你想要安装GDB和GCC)

我已经使用MS自己奇怪的JSON makefiles与智能感知GCC和GDB运行它。 有一天,有人(你?)会编写一个Gradle或Python脚本来生成这些脚本。 现在在文档中的在线示例似乎工作。

这似乎需要三种类型的JSON的东西;

  • 整个工作区的一个IntelliSense配置
  • 每个要调试的二进制文件的调试配置条目
    • 这些可以调用构建任务
  • 每个构件的构建任务
    • 我不认为有“要求”或“依赖”thingie-mah-bob; 抱歉