MinGW尝试使用CMake Makefiles中的cmd.exe

时间:2013-11-26 18:53:43

标签: makefile cmake mingw

我正在尝试在Windows下构建楔形文字。我使用CMake生成构建并选择MinGW Makefiles选项。

Makefiles内部有DOS C:\ pathname样式路径而不是unix样式,SHELL设置为cmd.exe(我注意到MinGW的bin目录有一个cmd脚本,但没有cmd.exe)而不是bash或sh。< / p>

我点击C:\MinGWzmsys\1.0\bin\bash.exe开始bash。当我尝试运行时,它说:

bash.exe"-3.1$ cd /c/cuneiform/build/
bash.exe"-3.1$ make
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
c:\cuneiform\build>

然后我必须输入三次退出才能重新进入bash!为什么呢?

我尝试生成使用unix样式路径并调用sh的Makefile,但由于某种原因无法让CMake执行此操作。

理想情况下,我应该在bash或DOS中尝试这个吗?如果我从DOS尝试(在设置路径= C:\ MinGW \ msys \ 1.0 \ bin; C:\ Windows \ System32的最小路径之后)以类似的方式进行死亡。

我通常在Windows下用HP-UX或Java编写C ++,所以MinGW和CMake对我来说都是新手,因为我相信你可以告诉我。

1 个答案:

答案 0 :(得分:7)

根据cmake doc,在Windows上, 如果shell为MinGW Makefiles,则应使用cmd.exe;如果是MSYS Makefiles,则应使用sh.exe

在bash shell中尝试cmake -G "MinGW Makefiles"会给您一个错误,因此您应该与您的环境保持一致。如果你不需要unix工具来构建你的项目(grep,sed等),那么你真的不需要运行bash。

根据我的经验,如果您对Unix环境和工具不感兴趣并且只需要编译器,我发现TDM GCC套件可以更好地工作。