使用Make使用g ++编译时出现“命令或文件名错误”错误

时间:2015-09-15 15:06:19

标签: c++ makefile g++ mingw mingw32

我最近安装了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

2 个答案:

答案 0 :(得分:2)

我想你想学习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.

答案 1 :(得分:1)

正如另一位受访者所指出的,你不应该试图哄骗Borland的古董make与MinGW合作;对你来说最合适的选择是mingw32-make,(GNU make的原生Windows版本,适合直接在cmd.exe shell会话中使用),或者安装MinGW.org&#39; s MSYS,并使用它提供的make;其中任何一个都可以使用MinGW.org的mingw-get安装管理器安装。

这些选项中的任何一个都应该适合你,同时避免Cygwin的膨胀(或同样臃肿的MSYS2,不应该与MinGW.org MSYS产品混淆)。请注意,如果您选择MSYS选项,您将安装一个非常轻量级的旧版本,但仍然是完全足够且功能强大的Cygwin版本。

最后,为了澄清您明显的混淆,我还要指出您在g++.exe目录中找到的$MINGW32_ROOT/bin以及您引用的mingw32-g++.exe是同一个 - 两者是MinGW编译器,你通常只需g++调用它。