如何在Windows

时间:2015-08-20 14:40:37

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

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

我希望能够在命令行中轻松编译,使用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

1 个答案:

答案 0 :(得分:2)

使用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,因为安装程序不会为您执行此操作。