53

我正在创建一个非常大的项目(几千行),因此宁愿不使用 Notepad++。IDE 将使它变得如此容易。我有使用 Microsoft Visual Studio 的经验并且喜欢它。是否有一些简单的方法可以在 Microsoft Visual Studio 中使用 Cygwin 的 GCC?

或者,除了 NetBeans 和 Eclipse 之外,还有其他适用于 GCC 的好的 Windows IDE 吗?(我非常讨厌他们两个。)

4

3 回答 3

40

有几种方法可以去这里:

选项 1:创建自定义构建工具

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

据我所知,还没有人为 GCC 做过这件事。而且,自己做这件事需要编写 COM 代码,这对于一个项目来说可能太深了,无法深入研究。你必须有一个令人信服的理由才能接受这个项目。

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

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

选项 2:Makefile 项目

  1. 启动 Visual Studio 并说文件 > 新项目。

  2. 在 Visual C++ 部分中,选择 Makefile 项目

  3. 填写 Makefile 项目向导:

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

如果您以项目名称命名可执行文件并且它位于 Visual Studio 期望找到它的位置,则可以单独保留“输出(用于调试)”字段。

保留其余字段,除非您知道它们是什么以及为什么要更改它们。例如,您可以选择在预处理器定义-D行上传递一个标志来获得单独的调试和发布输出。如果你知道你想要这个,你就知道如何设置它,所以我不会为了解释它而做出更长的答案。

对于发布版本,您将被问到相同的一组问题。如果您想打扰单独的调试和发布版本,您可以在此处进行任何更改。

完成所有这些之后,您仍然需要创建Makefile,并将一个添加make.exe到您的PATH. 与调试与发布问题一样,进入该级别的详细信息会使该答案偏离主题。

尽管看起来很丑,但它仍然比创建自定义构建工具更容易。Makefile另外,你说你最终需要移植到 Unix,所以无论如何你都需要它。

选项 3:跨平台开发

您说您想在某个时候将该程序移植到 Unix,但这并不意味着您现在必须在 Windows 上使用 GCC。很有可能编写您的程序,以便它在 Windows 上的 Visual C++ 和 *ix 系统上的 GCC/Makefiles 下构建。

有几个工具可以让这更容易。一个非常流行的选项是CMake,它在较新版本的 Visual Studio 中作为安装时间选项提供。有许多替代品,例如SConsBakefile

于 2013-02-11T19:30:39.860 回答
4

您可以将 Clang 编译器与 Visual Studio 结合使用,以针对 Android、iOS 和 Windows。

如果您的目标是 Android,您可以使用 Android NDK 和工具链附带的 Clang/LLVM 编译器来构建您的项目。同样,Visual Studio 可以使用在 Mac 上运行的 Clang 来构建面向 iOS 的项目。“使用 C++ 进行移动开发”工作负载中包含对 Android 和 iOS 的支持。有关定位 Android 或 iOS 的更多信息,请查看我们用关键字“Android”和“iOS”标记的帖子。

如果您的目标是 Windows,您有几个选择:

  1. 使用Clang/LLVM;“Clang for Windows”包括在 Visual Studio 中将 Clang/LLVM 作为平台工具集安装的说明。
  2. 使用 Clang 以 Clang/C2(带有 Microsoft 代码生成的 Clang 前端)的 Windows 为目标。 在此处输入图像描述

海合会

如果您的项目针对 Linux 或 Android,您可以考虑使用 GCC。Visual Studio 的 C++ Android 开发本机支持使用 Android NDK 附带的 GCC 构建您的项目,就像它为 Clang 所做的那样。您还可以使用 GCC以 Linux 为目标——远程或本地使用适用于 Linux 的 Windows 子系统。

在此处输入图像描述

查看我们在Visual C++ for Linux Development上的帖子,了解有关如何使用 Visual Studio 以 GCC 为目标的 Linux 的更多信息。如果您对在本地定位 WSL 特别感兴趣,请查看从 Visual Studio 定位 WSL

来源:https ://devblogs.microsoft.com/cppblog/use-any-c-compiler-with-visual-studio/

于 2020-10-27T21:52:47.567 回答
3

我来自未来。

我使用Win/Lin/Mac 上的Visual Code和从Choclaty安装的 MinGW保持(戳)一个 C/C++ 工具链。(这是为了我的理智而做的——随心所欲地安装 GDB 和 GCC)

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

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

于 2017-09-06T10:39:42.207 回答