加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

C++ 生态:编译器、IDE、测试工具大全

发布时间:2019-10-12 19:19:15 所属栏目:移动互联 来源:红薯
导读:编写专业的 C++ 应用程序,您不仅需要基本的文本编辑器和编译器。您还需要更多工具。在这篇文章中,我们将介绍大量 C++ 编程工具,包括:编译器,IDE,调试器等。 介绍 C++计算机编程语言已经成为使用最广泛的现代编程语言之一。使用C++构建的软件以其性能
副标题[/!--empirenews.page--]

 C++ 生态:编译器、IDE、测试工具大全

编写专业的 C++ 应用程序,您不仅需要基本的文本编辑器和编译器。您还需要更多工具。在这篇文章中,我们将介绍大量 C++ 编程工具,包括:编译器,IDE,调试器等。

介绍

C++计算机编程语言已经成为使用最广泛的现代编程语言之一。使用C++构建的软件以其性能和效率而闻名。C++已用于构建众多广受欢迎的核心库、以及类似 Microsoft Office 之类的应用程序,Unreal之类的游戏引擎,Adobe Photoshop之类的软件工具,Clang之类的编译器,MySQL之类的数据库,甚至包括Windows之类的操作系统。平台不断发展和壮大。

现代C++被定义为利用基于 C++11,C++14 和 C++17 语言特性的C++代码。这些按年份命名的语言标准(分别是2011年,2014年和2017年),包括对核心语言的许多重要新特性和增强,以实现功能强大,高性能和无错误的代码。现代C++具有支持面向对象编程,函数编程,泛型编程和低级内存操作功能的高级功能。

包括微软、因特尔和自由软件基金会等,都有其自己的C++编译器。诸如 Microsoft,QT Company,JetBrains和Embarcadero之类的公司提供了用于编写C++代码的集成开发环境。适用于C++的流行库可用于广泛的计算机学科,包括人工智能、机器学习、机器人、数学、科学计算、音频处理和图像处理等等。

在这篇文章中,我们将介绍许多编译器,构建工具,IDE,库,框架,编码助手,以及更多可以支持和增强现代C++开发的内容。

开始吧!

编译器,构建工具和程序包管理器

有许多支持现代C++的流行编译器,包括 GCC/g ++,MSVC(Microsoft Visual C ++)和 Clang。每个编译器对操作系统的支持都不同,GCC/g ++始于1980年代后期,Microsoft的Visual C ++于1990年代初,而Clang则在2000年代后期。这三个编译器都支持现代C++,至少支持C++ 17,但是它们各自的源代码许可差异很大。

GCC

GCC是GCC指导委员会开发、维护和定期更新的通用编译器,率属于GNU项目。GCC描述了许多针对硬件平台和多种语言的庞大编译器家族。虽然它主要针对类Unix平台,但Windows可以通过Cygwin或MinGW运行时库提供支持。GCC 支持编译最新的C++代码,直至C++17,并提供了对某些C++20功能的实验性支持。它还可以编译基于C++标准的各种语言扩展。GCC 使用 GPLv3 许可进行开源,带有GCC运行时库例外。GCC得到了CMake和Ninja等构建工具的支持,以及CLion,Qt Creator和Visual Studio Code等许多IDE的支持。
https://gcc.gnu.org/
https://gcc.gnu.org/projects/cxx-status.html

Microsoft Visual C ++

Microsoft Visual C ++(MSVC)是微软公司的编译器,用于实现自定义C++标准(称为Visual C ++)。它会定期更新,并且像GCC和Clang一样,支持最新C ++17的现代C++标准,并提供对某些C++20功能的实验性支持。MSVC是在Microsoft自己的Visual Studio中构建C++应用程序的主要方法。它通常针对Windows,Android,iOS和Linux上的许多体系结构。对构建工具和IDE的支持是有限的,但仍在增长。CMake扩展在Visual Studio 2019中可用。MSVC可以与Visual Studio Code一起使用,CLion和Qt Creator的有限支持以及其他扩展。MSVC是微软专有的项目,可以通过商业许可获得,同时也提供社区版。
https://zh.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B
https://devblogs.microsoft.com/visualstudio/
https://visualstudio.microsoft.com/vs/community/

Clang

Clang描述了为LLVM项目维护和定期开发的C语言族的大量编译器。尽管它针对许多流行的体系结构,但是与GCC相比,它支持的平台较少。LLVM项目通过关键设计原则定义了Clang —— 严格遵守C++标准(尽管提供了对GCC扩展的支持),模块化设计以及在编译过程中对源代码的结构进行的最小修改等。像GCC一样,Clang编译具有支持C++17标准和实验性C++20的现代C++代码。它可以在开源(Apache许可证版本2.0)许可下使用。Clang还获得了诸如CMake和Ninja之类的构建工具以及诸如CLion,Qt Creator,Xcode之类的IDE之类的广泛支持。
https://clang.llvm.org/
https://clang.llvm.org/cxx_status.html

Make

Make是广泛使用的知名构建系统,尤其是在Unix和类似Unix的操作系统中。Make通常用于从源代码构建可执行程序和库。但是该工具适用于涉及执行任意命令以将源文件转换为目标结果的任何过程。Make与任何特定的编程语言都不紧密。它会自动确定已更改了哪些源文件,然后执行最少的构建过程以获取最终输出。它还用于将编译结果安装到系统
https://www.gnu.org/software/make/

CMake

CMake是用于管理构建过程的跨平台工具。尤其是大型应用程序和依赖库的构建,可能是一个非常复杂的过程,尤其是当您支持多个编译器时。CMake对此进行了抽象。您可以使用一种通用语言定义复杂的构建过程,并将其转换为适用于各种被支持的编译器、IDE和构建工具的本机构建指令,包括Ninja(如下所示)。有适用于Windows,macOS和Linux的CMake版本。
https://cmake.org/

Ninja

Ninja构建系统用于构建应用程序的实际过程,类似于Make(一个传统的但现在使用较少的实用程序)。它着重于通过并行化构建来尽可能快地运行。它通常与CMake配对使用,后者支持为Ninja构建系统创建构建文件。Ninja 的功能集故意保持最小,因为重点在于速度。
https://ninja-build.org/

Microsoft Build Engine(MSBuild)

MSBuild是基于命令行的内置平台,可从Microsoft获得开源(MIT)许可。它可用于自动化编译和部署项目的过程。也可以独立使用或者与Visual Studio打包在一起,也可以从Github中获得。MSBuild文件的结构和功能与Make非常相似。MSBuild具有基于XML的文件格式,主要支持Windows,但也支持macOS和Linux。诸如CLion和C ++ Builder之类的IDE也可以与MSBuild集成。
https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild

Conan,Vcpkg,Buckaroo

诸如Conan,vcpkg和Buckaroo之类的程序包管理器已在C++社区中变得越来越流行。程序包管理器是用于安装库或组件的工具。

Conan是一个分散式开源(MIT)软件包管理器,它支持多个平台和所有构建系统(例如CMake和MSBuild)。Conan支持二进制文件,其目标是自动化依赖性管理,以节省开发和持续集成的时间。

微软的vcpkg是MIT许可下的开源软件,支持Windows,macOS和Linux(甚至支持与CMake集成)。Vcpkr需要在Visual Studio 2015或更高版本中使用,因此其使用范围有所限制。

Buckaroo是一个鲜为人知的开源软件包管理器,可以从GitHub,BitBucket,GitLab等获取依赖项。Buckaroo为许多IDE提供了集成,包括CLion,Visual Studio Code,XCode等。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读