3

为了避免重新输入长命令到 MSYS 进行配置,我通常使用批处理文件来存储命令,如下所示: ./configure \ --arch=x86_64 \ --target-os=win64 \ --toolchain=msvc \ --enable-cross-compile \ --enable-gpl \ --disable-debug \ --enable-shared \

这种方式适用于 MSYS。但是当我在 MSYS2 中运行批处理文件时,它发现了许多错误消息,例如:

'.' is not recognized as an internal or external command, operable program or batch file. '--arch' is not recognized as an internal or external command, operable program or batch file. etc...

谁能解释一下是什么原因?

4

1 回答 1

1

正如您所展示的,您的“批处理”文件看起来更像是一个 Bourne shell 脚本,所以它绝对不应该被限定为一个.bat文件。现在,如果您将其限定为.bat文件,MSYS 将无法直接运行它;它需要一个 shebang 行才能使其作为 shell 脚本可执行。从您显示的错误消息来看,MSYS2 似乎正在尝试变得聪明,而 MSYS 没有通过将执行移交给 Windows 命令解释器(这些是cmd.exe错误消息);由于该脚本采用 Bourne shell 语法,因此您希望 MSYS2 直接运行它,在bash.

顺便说一句,MSYS shell bash;AFAIK,MSYS2 也提供bash了它的主要外壳。

于 2015-06-03T21:08:48.663 回答