如何在Windows上使用cmake、make和编译C++14

5
我正在尝试在Windows 10上编译一个C++项目,该项目使用了C++14特性,例如std::make_unique<>等。
我希望能够轻松地通过命令行使用CMake和make进行编译,然后能够从任何命令行运行我的程序或只需单击其可执行文件即可运行。
使用Cygwin编译,即使它确实可以工作(我使用了这个tutorial),也不是一个选项,因为由于缺少DLL,生成的可执行文件无法在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。我在我的答案中详细说明了工作流程,但我仍然在寻找一种“GNU风格”的编译方法。

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

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



2
你必须使用GNU工具链还是Visual Studio也可以? - anderas
我必须能够使用CMake,因为该项目还将在使用CMake的Unix环境中进行编译,但除此之外并不重要。 - AntoineB
我会使用现有的MinGW从源代码构建GCC 5.x。我最近做过这样的事情来构建交叉编译器,虽然GCC有一些依赖库需要首先构建,但这不是一个特别困难的过程。 - Andy Brown
2
CMake的最新版本支持Visual Studio 2015。 - Chris Drew
1
如果您想安装最新版本的MinGW 64,我建议使用(STL网站)[http://nuwen.net/mingw.html]中的其中一个安装程序。祝您好运! - user4992621
显示剩余2条评论
1个回答

2

使用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)\MSBuild\14.0\Bin\MSBuild.exe

使用更新的MinGW安装程序

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接