2016-12-29 49 views

回答

2

g ++只是一个编译器,不使用makefile。这就是make工具(GNU autotools的一部分)的作用。预计在unix或类Unix环境(posix)下运行make。在Windows编译的情况下,您可以经常使用cygwin或msys来提供类似于unix的环境,其工具类似于shrmCygwin基本上是一个仿真器,并通过DLL包含必要的工具和仿真层。 MSYS是一套Linux工具,编译为在DOS/Windows环境下运行,并包含一个shell。

CMake这样的较新的编译系统对于跨平台编译更可取,因为它们可以帮助您处理操作系统抽象和异常。

+0

谢谢你清理那个。 – Pipsqweek

+0

“make”必须在unix或unix环境下运行。除了使用cygwin或msys构建之外,GNU make(至少)可以使用简单的Visual Studio作为标准Windows程序构建,而无需任何特殊的POSIX环境。你引用的'rm'只是'make'打印出来的,但它实际上并没有运行'rm'程序(如果你指的是删除中间目标)。除此之外,如果你编写你的makefile食谱来使用command.com作为shell而不是UNIX shell,那么你不需要任何UNIX工具来使用'make'。 – MadScientist

+0

也只是要清楚,cmake不是一个构建系统。 cmake是一个“元”构建系统;也就是说,它是一个可以为其他构建系统生成输入文件的系统。 cmake本身不能构建你的软件,但它可以从一个单独的(正确编写的)cmake输入文件中为所有不同类型的构建系统生成控制文件:makefiles,还包括Visual Studio项目文件,Xcode项目文件,Eclipse项目文件,忍者文件等 – MadScientist