【问题标题】:How to cmake, make and compile C++14 on Windows如何在 Windows 上 cmake、make 和编译 C++14
【发布时间】:2015-08-20 14:40:37
【问题描述】:

我正在尝试在 Windows 10 上编译一个使用 C++14 功能(例如 std::make_unique<> 等)的 C++ 项目。

我希望能够在命令行中轻松编译,使用 CMake 和 make,然后能够从任何命令行运行我的程序,或者只需单击它的可执行文件。

使用 Cygwin 编译,即使它确实可以工作(我使用了这个 tutorial),也不是一种选择,因为由于缺少 DLL,生成的可执行文件将无法在 Cygwin 环境之外使用。

我已阅读有关 MinGW-w64 的信息,但似乎适用于 Windows 的最新可用版本对应于 GCC 4.8.3

MinGW 安装程序 mingw-get-setup.exe 可用 here 也是如此,它只允许我安装 4.8.1-4 版本。

所以我想要一个关于如何使用 CMake 编译 C++14 项目的过程,这将允许我在默认的 Windows 环境中启动可执行文件。

谢谢。

更新:Chris Drew 评论说我可以使用最新的 Visual Studio 版本来构建我的项目,使用 Visual C++ 编译器而不是 GCC。我在回答中详细说明了工作流程,但我仍在寻找一种“GNU 风格”的方式来编译它。

“GNU-style”: 使用Tive's comment 中提供的链接安装工作的GCC 5.1 环境并使用普通的cmake . -G"Unix Makefiles" && make 命令。

有关这两种解决方案的更多详细信息,请参阅this answer


【问题讨论】:

  • 您必须使用 GNU 工具链还是可以选择 Visual Studio?
  • 我必须能够使用 CMake,因为该项目也将使用 CMake 在 Unix 环境中编译,但除此之外没关系。
  • 我会使用现有的 mingw 从源代码构建 gcc 5.x。我最近这样做是为了构建交叉编译器,虽然 gcc 有一些需要首先构建的依赖库,但这并不是一个特别困难的过程。
  • 最新版本的 CMake 支持 Visual Studio 2015。
  • 如果你想安装最新版本的 MinGW 64,我会使用(STL 网站)[nuwen.net/mingw.html].祝你好运!

标签: c++ windows gcc compilation c++14


【解决方案1】:

使用 Visual Studio 编译器

Chris Drew comment 之后,这是我为了使用 CMake 进行编译以生成 Visual Studio 2015 解决方案并在命令行中编译此解决方案所做的工作。

请注意,这不是使用 GNU 工具链,因为我们不会使用 gcc / make,而是使用 Visual C++ 编译器。

创建并移动到构建子目录(建议这样做,因为它会生成大量文件,而不仅仅是标准 Makefile):

mkdir build && cd build

生成 Visual Studio 2015 解决方案:

cmake . -G"Visual Studio 14 2015"

这将生成几个项目文件,包括YourProjectName.sln,我们将使用以下命令来构建项目:

msbuild YourProjectName.sln

请注意,msbuild 不在我的 PATH 中,所以我必须提供可执行文件的完整路径,在我的例子中是 C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe


使用更新的 MinGW 安装程序

Tive 提供了一个link to a bundled installer,它将自动在您的系统上安装 GCC 5.1,这样您就可以通过生成 Unix Makefile 并使用make 命令来使用普通的 GNU 工具链。

请注意,您需要手动编辑 PATH,因为安装程序不会为您执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-16
    • 2019-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    • 2014-10-03
    相关资源
    最近更新 更多