如何在Windows上制作、制作和编译c++ 14

How to cmake, make and compile C++14 on Windows

本文关键字:编译 c++ Windows      更新时间:2023-10-16

我正在尝试编译,在Windows 10上,一个c++项目,使用c++ 14的功能,如std::make_unique<>和类似的东西。

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

使用Cygwin编译,即使它确实工作(我使用本教程),也不是一个选项,因为由于缺少dll,结果可执行文件将无法在Cygwin环境之外使用。

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

同样适用于这里提供的MinGW安装程序mingw-get-setup.exe,它只允许我安装4.8.1-4版本。

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

谢谢。

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

"GNU-style":使用Tive注释中提供的链接来安装工作的GCC 5.1环境并使用正常的cmake . -G"Unix Makefiles" && make命令。

有关这两种解决方案的更多详细信息,请参阅此回答。


使用Visual Studio编译器

遵循Chris Drew的评论,以下是我使用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)MSBuild14.0BinMSBuild.exe


使用更新的MinGW安装程序

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

请注意,您需要手动编辑您的PATH,因为安装程序不会为您做。