我正在尝试在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。
答案 0 :(得分:2)
关注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
。
Tive提供了一个link to a bundled installer,它将自动在您的系统上安装GCC 5.1,这样您就可以通过生成Unix Makefile并使用make
命令来使用普通的GNU工具链。
请注意,您需要手动编辑PATH,因为安装程序不会为您执行此操作。