在本地安装 C++

了解如何在本地安装 C++,以便在自己的电脑上完成 Exercism 的练习


前置条件

C++ 语言轨道需要你的系统上安装以下软件:

  • 一个现代的 C++14 编译器
  • CMake 跨平台构建系统

我们使用 Catch2 进行测试,它是一个仅头文件库,随练习一起打包提供。

这组依赖在 C++ 项目中非常常见,所以如果你在配置时遇到任何问题,都能在网上找到很多有用的资源。

很多 IDE,包括 Microsoft 的 Visual Studio、Apple 的 Xcode 和 JetBrains 的 CLion,都把编译器和 CMake 捆绑在一起,所以你只需要安装 IDE 就行。

现代的 C++14 编译器

本语言轨道需要支持 C++14 的编译器,该标准发布于 2014 年。近几年发布的所有主流编译器都应该兼容,所以只要你用的是比较新的版本就没问题。具体来说,需要 GCC 7 或更高版本、Clang 6 或更高版本,或者 Visual Studio 2017 或更高版本。

CMake

CMake 是一个开源的跨平台构建系统,能为你的原生构建系统(make、Visual Studio、Xcode 等)生成构建脚本。Exercism 的 C++ 轨道使用 CMake,为你提供一套现成的构建流程,它会:

  • 编译测试
  • 编译你提交的解答
  • 链接测试可执行文件
  • 每次构建时自动运行测试
  • 只要有任何一个测试失败,就让构建失败

使用 CMake 让 Exercism 能够提供一套跨平台的构建脚本,可以为 Visual Studio、Xcode 这类集成开发环境生成项目文件。这样你就能专注于问题本身,而不用为每个练习单独配置构建环境。

要让构建可移植并不容易,需要接触到各种不同类型的系统。如果你在使用我们提供的 CMake 配置时遇到任何问题,请报告问题,好让我们改进对 CMake 的支持。

使用我们提供的构建配置需要 CMake 3.5.1 或更高版本。

Windows

Windows 用户可以下载 Visual Studio Community,它是免费的,可以为你提供 Visual Studio IDE 和最新版本的 Microsoft Visual C++ 编译器。

  1. 按照这里的说明配置 CMake。
  2. 使用 Exercism CLI 工具下载练习。
  3. 打开 Visual Studio 2017 或更高版本(已按上面链接的说明安装用于 CMake 的 Visual C++ 工具)。
  4. 在 VS 中打开练习文件夹。
  5. 运行“Build->Build the solution”。测试会随构建一起执行,输出会显示在构建窗口中。由于测试在构建期间运行,只要有一个测试失败,VS 就会提示构建失败,测试失败的详细信息会出现在构建输出窗口中。

其他集成开发环境,比如 JetBrains 的 CLion,也能以类似的方式使用。

在 Windows 上安装 Boost

meetup 和 gigasecond 这两个练习依赖 Boost 库。下面的步骤介绍如何配置。

  1. 下载 Boost 的预编译 Windows 库。
    • 这些练习要求 Boost 版本至少为 1.58。
    • 你可以在 Visual Studio 安装程序中点击“Modify”来查看 MSVC 的版本。
  2. 将库解压到一个本地文件夹。
  3. 将 BOOST_ROOT 环境变量设置为 Boost 库所在的文件夹。
  4. 如果你在操作时 Visual Studio 是打开的,请先关闭它,以确保 BOOST_ROOT 的值能被读取到。
  5. 启动 Visual Studio,打开包含 gigasecond 或 meetup 练习的文件夹。
  6. “Startup Item”应该是 gigasecond.exe 或 meetup.exe,并且你应该会在 gigasecond_test.cpp 或 meetup_test.cpp 中看到构建错误,提示你实现缺失的内容,就像其他练习一样。

Linux

所有较新的 Linux 发行版都自带了兼容 C++14 的编译器,你应该能用包管理器安装它。我们支持的版本是 Ubuntu LTS 18.04 中默认安装的版本。

例如,在 Ubuntu 上可以用下面的命令安装 gcc。

$ sudo apt-get install gcc
$ gcc --version

如果你用的是较旧的发行版,可能没有支持 C++14 的编译器。如果是这种情况,你需要查阅你所用的发行版,弄清楚如何安装满足最低要求的编译器版本。

MacOS

MacOS 用户可以通过 brew install gcc,用 Homebrew 安装 GCC。