"Bad command or file name" 使用 Make 使用 g++ 编译时出错
"Bad command or file name" error when compiling with g++ using Make
我最近安装了 MinGW 并学习了如何使用 Make。但是每当我尝试使用 make 编译 CPP 源文件时,我都会出错。下面是输出:
MAKE Version 3.6 Copyright (c) 1991 Borland International
Available memory 33397872 bytes
mingw32-g++ main.cpp --std=c++11 -o program
Bad command or file name
main.cpp是一个非常简单的"Hello World"类型程序。当我直接在命令提示符中使用它时,该命令有效。
我是 MinGW 的 运行 Windows 8.1。 GCC 版本 4.8
我认为你想学习 GNU make,而不是 1991 年的 Borland。
确保您在 Cygwin 中安装了 GNU make 包。通过在 bash 命令行中输入来检查它是否存在:
$ type -a make
它应该以类似这样的方式响应:
/usr/bin/make
/bin/make
然后:
$ make --version
哪个应该像这样回应:
GNU Make 4.1
Built for x86_64-unknown-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
正如另一位受访者指出的那样,您不应该试图哄骗 Borland 的古董 make
与 MinGW 合作;最适合您的选项是 mingw32-make
,(适合直接从 cmd.exe
shell 会话使用的 GNU make
的本机 windows 构建),或者安装MinGW.org的MSYS,并使用它提供的make
;这些都可以使用 MinGW.org 的 mingw-get
安装管理器安装。
这些选项中的任何一个都应该适合您,同时避免 Cygwin 的膨胀(或同样膨胀的 MSYS2,不应与 MinGW.org MSYS 产品混淆)。请注意,如果您选择 MSYS 选项,您将安装一个非常轻量级的旧版本 Cygwin 的分支,但仍然非常合适且功能强大。
最后,为了消除您明显的困惑,我还要指出您在 $MINGW32_ROOT/bin
目录中找到的 g++.exe
,以及您所指的 mingw32-g++.exe
, 是一样的——两者 都是 MinGW 编译器,你通常会简单地调用它作为 g++
.
我最近安装了 MinGW 并学习了如何使用 Make。但是每当我尝试使用 make 编译 CPP 源文件时,我都会出错。下面是输出:
MAKE Version 3.6 Copyright (c) 1991 Borland International
Available memory 33397872 bytes
mingw32-g++ main.cpp --std=c++11 -o program
Bad command or file name
main.cpp是一个非常简单的"Hello World"类型程序。当我直接在命令提示符中使用它时,该命令有效。
我是 MinGW 的 运行 Windows 8.1。 GCC 版本 4.8
我认为你想学习 GNU make,而不是 1991 年的 Borland。
确保您在 Cygwin 中安装了 GNU make 包。通过在 bash 命令行中输入来检查它是否存在:
$ type -a make
它应该以类似这样的方式响应:
/usr/bin/make
/bin/make
然后:
$ make --version
哪个应该像这样回应:
GNU Make 4.1
Built for x86_64-unknown-linux-gnu
Copyright (C) 1988-2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
正如另一位受访者指出的那样,您不应该试图哄骗 Borland 的古董 make
与 MinGW 合作;最适合您的选项是 mingw32-make
,(适合直接从 cmd.exe
shell 会话使用的 GNU make
的本机 windows 构建),或者安装MinGW.org的MSYS,并使用它提供的make
;这些都可以使用 MinGW.org 的 mingw-get
安装管理器安装。
这些选项中的任何一个都应该适合您,同时避免 Cygwin 的膨胀(或同样膨胀的 MSYS2,不应与 MinGW.org MSYS 产品混淆)。请注意,如果您选择 MSYS 选项,您将安装一个非常轻量级的旧版本 Cygwin 的分支,但仍然非常合适且功能强大。
最后,为了消除您明显的困惑,我还要指出您在 $MINGW32_ROOT/bin
目录中找到的 g++.exe
,以及您所指的 mingw32-g++.exe
, 是一样的——两者 都是 MinGW 编译器,你通常会简单地调用它作为 g++
.