我正在尝试在Windows下构建楔形文字。我使用CMake生成内部版本,然后选择MinGW Makefiles选项。

在内部,Makefile具有DOS C:\pathname样式路径而不是unix样式,并且SHELL设置为cmd.exe(我注意到MinGW的bin目录具有cmd脚本,但没有cmd.exe),而不是bash或sh。

我通过双击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>

然后,我必须键入exit 3次才能重新进入bash!为什么?

我试图生成使用unix样式路径并调用sh的Makefile,但是由于某种原因无法使CMake这样做。

理想情况下,我应该在bash或DOS中尝试此操作吗?如果我从DOS尝试(将最小路径设置为path = C:\MinGW\msys\1.0\bin; C:\Windows\System32后),则以相似的方式进行模具切割。

我通常会在HP-UX或Windows下使用Java编写C++,因此,我敢肯定,MinGW和CMake对我来说都是新的。

最佳答案

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

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

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

关于makefile - MinGW尝试使用CMake Makefiles中的cmd.exe,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20225551/

10-16 21:43