如何在Windows上编译,编译和编译C ++ 14

我试图在Windows 10上编译一个使用C ++ 14function的C ++项目,例如std::make_unique<>和类似的东西。

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

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

我已经阅读了MinGW-w64,但是似乎最新版本的Windows对应于GCC 4.8.3 。

MinGW安装程序mingw-get-setup.exe ,只允许我安装4.8.1-4版本。

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

谢谢。

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

“GNU风格”:使用Tive评论中提供的链接来安装GCC 5.1环境,并使用正常的cmake . -G"Unix Makefiles" && make cmake . -G"Unix Makefiles" && make命令。

有关这两种解决scheme的更多细节,请参阅此答


使用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不在我的路径,所以我不得不提供完整的路径到可执行文件,在我的情况下, C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe


使用更新的MinGW安装程序

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

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