在Windows上有相同的Make吗?

时间:2009-02-13 01:26:30

标签: build compiler-construction makefile

我在Windows上开发,我想使用beanstalkd。它仅作为tarball提供,我只是想知道是否有一些方法可以像在Linux中一样轻松地构建它?我找到了一些用于Windows的gnu make端口,但它们似乎没有工作。源代码分发是否特定于Linux?

当我尝试使用mingw32-make时,它说“无法为文件做什么”。 TBH我不知道该怎么运行它,所以我尝试了tarball,目录,以及Makefile.in和Makefile.am。他们都说同样的话。

10 个答案:

答案 0 :(得分:13)

Make在cygwin中可用,您可以通过安装程序安装make。

该包名为“make”,位于“Devel”类别下。

答案 1 :(得分:7)

  

我找到了一些gnu的端口   Windows,但它们似乎不是   工作

以下是 Windows GNU 工具的几个端口:

我很确定我已经使用了 unxutils 端口中的一些实用程序而没有任何问题。

答案 2 :(得分:3)

我也会考虑使用带有mingw的msys(它也可以在http://mingw.org找到)我可以尝试解释它,但我认为其页面中的描述效果更好

MSYS:一个最小的SYStem,提供与POSIX兼容的Bourne shell环境,以及一小部分UNIX命令行工具。主要是作为执行配置脚本和Makefile用于构建开源软件的手段而开发的,但也可用作替换Windows cmd.exe的通用命令行界面。

使用msys而不是cygwin的一个好处是它构建本机Windows应用程序而不必依赖cygwin兼容性层

答案 3 :(得分:3)

大多数unix源包都要求你运行“configure”,它会读取你系统的一些信息并构建Makefile - 尽管在X11的早期,一些软件包使用“xmkmf”从IMakefiles构建Makefile。只有在完成后才能运行“make”并可能“make install”。从它的声音来看,你没有Makefile,只有Makefile.in(输入配置)。

答案 4 :(得分:2)

Cygwin很不错,正如之前的回答所示,但它包含的不仅仅是make。

我曾经在Windows上使用NMake来构建Perl模块。看看:

http://johnbokma.com/perl/make-for-windows.html

这对Perl很有用。看起来也有一般的GNU端口:

http://gnuwin32.sourceforge.net/packages/make.htm

答案 5 :(得分:1)

想到了Cygwin和mingw。

MSVC包括nmake哪种工作在常规makefile上有一些调整。

答案 6 :(得分:1)

make实用程序希望使用名为 Makefile 的文件。如果您只输入make,它会自动找到该文件。如果makefile具有其他名称,请使用-f选项。如果您只提供没有-f的文件名,那么make会将其解释为目标,它应该知道如何制作。

许多只作为源代码的工具假设您将使用Visual C ++在Windows上构建,即使他们假设您将在其他地方使用G ++。寻找Visual C ++ makefile;它通常被命名为 Makefile.mak 。然后运行nmake

但是如果您只有名为 Makefile.in Makefile.am 的文件,那么您还没有可用的环境。 Makefile.in configure脚本的输入之一,它将构建真实的makefile,可能是一个或两个特定于您的环境的头,基于{{1}的测试跑。

最后,您下载的软件包在Windows上可能无法编译。即使在Cygwin下,如果没有用Windows编写,也可能需要对源代码进行一些更改。

Makefile.in 将包含最终makefile的基础知识。在我知道我应该做什么之前,我只是将 Makefile.in 重命名为 Makefile 并且相当远。您可以尝试使用该文件作为构建真实Windows makefile的起点,适用于您选择的任何编译器目标。需要耐心;继续关注编译器消息,直到你再也看不到为止。 (然后是链接器。希望你不需要太多其他库!)

答案 7 :(得分:0)

关于替代方案,请查看此link。至于你的make问题,你必须对非工作部分更具体一些。什么不起作用,它是如何表现出来的,它给出了什么错误等等。

答案 8 :(得分:0)

让其他人去做艰苦的工作。这是一个预编译的beanstalkd 1.4.6 exe。

答案 9 :(得分:-2)

解压缩tarball,将cd放入其最顶层的目录并输入'make'。 Make会自动获取Makefile。