为多个操作系统创建一个makefile,这个make(ext?)不起作用?
Posted
技术标签:
【中文标题】为多个操作系统创建一个makefile,这个make(ext?)不起作用?【英文标题】:Create a makefile for multiple OSes, this make (ext?) doesn't work? 【发布时间】:2008-11-20 20:59:13 【问题描述】:我有一个使用 mingw32 构建的工作 makefile。现在我将该 makefile 重命名为 Makefile.w32 (source -> http://pastie.org/319964)
现在我有一个包含以下内容的 Makefile。问题是,它没有构建我的源代码
all:
make mingw32
clean:
@echo "causes an infinite loop -> make mingw32 clean"
mingw32:
@echo "yeahhhhhhhhh"
make Makefile.w32
mingw32-clean:
@echo "mingw clean"
make Makefile.w32 clean
结果:
> "make"
make mingw32
make[1]: Entering directory `/c/nightly/test'
yeahhhhhhhhh
make Makefile.w32
make[2]: Entering directory `/c/nightly/test'
make[2]: Nothing to be done for `Makefile.w32'.
make[2]: Leaving directory `/c/nightly/test'
make[1]: Leaving directory `/c/nightly/test'
在我看来它不喜欢 Makefile.w32 扩展名。我不明白为什么它没有建立。它很明显进入了我的“make Makefile.w32”行。
【问题讨论】:
【参考方案1】:"make Makefile.w32" 正在寻找名为 Makefile.w32 的 目标,而不是同名的 make 文件。要运行 make 并告诉它读取 make 文件“Makefile.w32”,请使用 -f 开关:
make -f Makefile.w32
编辑:顺便说一句,如果你想要的只是让“all”依赖于同一目标中的“mingw32”目标,为什么还要在“all”目标中启动一个单独的 make 实例?制作文件?恕我直言,最好将其声明为依赖目标:
all: mingw32
同样使用“clean”和“mingw32-clean”:
clean: mingw32-clean
【讨论】:
【参考方案2】:您可以使用cmake 来生成makefile。它应该适用于大多数平台。
【讨论】:
以上是关于为多个操作系统创建一个makefile,这个make(ext?)不起作用?的主要内容,如果未能解决你的问题,请参考以下文章