我正在创建一个非常大的项目(几千行),所以宁愿不使用Notepad ++。 IDE会让它变得如此简单。我有使用Microsoft Visual Studio的经验并喜欢它。有没有一些简单的方法在Microsoft Visual Studio中使用Cygwin的GCC?
或者,除了NetBeans和Eclipse之外,还有其他适用于GCC的Windows IDE吗? (我非常讨厌他们。)
答案 0 :(得分:32)
有几种方法可以到这里:
Visual Studio 2005及更新版本将允许您register custom build tools。它们告诉IDE如何将一个表单(例如.cpp
文件)的文件转换为另一个表单(例如.obj
文件)。
据我所知,目前还没有人为海湾合作委员会做过这件事。并且,自己动手需要编写COM代码,这可能是一个太深的池,无法深入到单个项目中。你必须有一个令人信服的理由来参与这个项目。
然后,您必须手动调整每个项目以告诉它使用自定义构建工具而不是默认构建工具,因为您使用的是Visual C ++已经知道的文件扩展名(.cpp
)。如果您尝试将VC ++和g ++编译器混合为从多个模块构建的单个可执行文件,您将遇到麻烦。
从好的方面来说,如果你想开始一个开源项目,这对我来说听起来不错。我希望你能迅速聚集一个庞大的用户群。
启动Visual Studio并说出文件>新项目。
在Visual C ++部分中,选择Makefile Project
如果您使用的是Visual Studio Express,请不要选中提供项目以检查项目是否为源控件。如果您没有为Visual Studio付费,您可能也选择不支付微软昂贵的团队“解决方案”,并且VSE不支持第三方VCS插件,例如AnkhSVN Subversion。
填写Makefile项目向导:
单独保留输出(用于调试)字段,除非您做了一些奇怪的事情,比如在项目名称后面没有命名可执行文件,或者将可执行文件名放在除顶层之外的某个位置。项目
将其余字段单独留下,除非您知道它们是什么以及您想要更改它们的原因。举个例子,您可以选择在预处理器定义行上传递-D
标志,以获得单独的调试和释放输出。如果你知道你想要这个,你就知道如何设置它,所以为了解释它,我不会再做这么长的答案。 (如果你不知道如何但又想要,那么对于一个新的SO问题来说,它可能是个好主题!)
您将被问到针对Release版本的同一组问题。如果您想打扰单独的调试和发布版本,您可以在此处进行任何更改。
完成所有这些操作后,您仍然必须创建Makefile
,并向make.exe
添加PATH
。与调试与发布问题一样,进入该级别的详细信息会使这个答案脱离主题。
虽然看起来很难看,但它仍然比创建自定义构建工具更容易。另外,你说你最终需要移植到Unix,所以无论如何你都需要Makefile
。
你说你想在某个时候将这个程序移植到Unix,但这并不意味着你现在必须在Windows上使用GCC。编写程序是很有可能的,以便在Windows上的Visual C ++和* ix系统上的GCC / Makefiles下构建。
通过从单个公共源生成VS项目文件和Makefile
,甚至有几种工具可以使这更容易。我碰巧使用Bakefile,但CMake近年来变得越来越流行。 SCons也做了这个工作,也可能比Bakefile更受欢迎;它肯定会更频繁地更新。
答案 1 :(得分:3)
C语
您可以将Clang编译器与Visual Studio一起使用,以定位Android,iOS和Windows。
如果您的目标是Android,则可以使用Android NDK和工具链附带的Clang / LLVM编译器来构建项目。同样,Visual Studio可以使用Mac上运行的Clang来构建针对iOS的项目。 “使用C ++移动开发”工作负载中包含对Android和iOS的支持。有关定位Android或iOS的更多信息,请查看我们的标有关键字“ Android”和“ iOS”的帖子。
如果您以Windows为目标,则有几种选择:
海湾合作委员会
如果您的项目针对Linux或Android,则可以考虑使用GCC。 Visual Studio的C ++ Android开发本身就支持使用Android NDK附带的GCC构建项目,就像Clang一样。您还可以使用GCC定位Linux(通过Windows Subsystem for Linux远程或本地定位)。
请查看我们在Visual C++ for Linux Development上的帖子,以获取有关如何使用Visual Studio通过GCC定位Linux的更多信息。如果您对本地定位WSL特别感兴趣,请查看Targeting WSL from Visual Studio。
来源:https://devblogs.microsoft.com/cppblog/use-any-c-compiler-with-visual-studio/
答案 2 :(得分:1)
我来自未来。
我在Win / Lin / Mac上使用Visual Code和从Choclatey安装的MinGW继续(戳)C / C ++工具链。 (这是为了我的理智 - 按照你想要的方式安装GDB和GCC)
我使用MS自己奇怪的JSON makefile在GCC和GDB上使用IntelliSense运行它。 有一天,有人(你?)会写一个Gradle或Python脚本来生成这些;目前the examples online in the docs似乎有效。
似乎需要三种类型的JSON东西;