制作文件问题:总是吐出“‘make.w’无事可做。”

Posted

技术标签:

【中文标题】制作文件问题:总是吐出“‘make.w’无事可做。”【英文标题】:make file issue : always spits out "Nothing to be done for `make.w'." 【发布时间】:2010-10-14 05:32:48 【问题描述】:

我有 3 个文件 Head.cpp 、 Head.h 和 Hello.cpp 。我正在尝试为编译过程构建一个 make。我的makefile是make.w

Hello :   Head.o Hello.o
          g++ -o Head.o Hello.o

Head.o :  Head.cpp
          g++ -o Head.cpp

Hello.o:  Hello.cpp
          g++ -o Hello.cpp

每次我输入命令 make make.w - 我都会得到“Nothing to make fot make.w”。我不明白为什么会发生这种情况以及如何解决。

【问题讨论】:

【参考方案1】:

由于您使用非默认生成文件 makefileMakefile 调用 make,因此您需要使用 -f 选项:

make -f make.w
     ^^

看起来您目前将其称为:

make make.w

这不起作用。它告诉make 在默认生成文件中创建目标 make.w

此外,当从.c 转换为.o 时,您需要使用-c 编译器标志,它告诉编译器只编译但不要链接 .此外,当使用-c 时,您不需要-o,编译器将为您生成<filename>.o

Head.o :  Head.cpp
          g++ -c  Head.cpp
              ^^

Hello.o:  Hello.cpp
          g++ -c  Hello.cpp
              ^^

最后你在编译行中缺少可执行文件Hello 的名称:

Hello :   Head.o Hello.o
          g++ -o Head Head.o Hello.o
                 ^^^^

【讨论】:

现在,我得到一个`make -f mkfl.w g++ -o Head Head.cpp /usr/lib/gcc/x86_64-linux-gnu/4.3.1/../../ ../../lib/crt1.o:在函数_start': (.text+0x20): undefined reference to main'collect2:ld返回1退出状态make:*** [Head.o] Error 1`错误 我已经更新了答案,你需要使用-o 选项,如图所示。 谢谢,修改后尝试编译,出现如下错误 g++ -c -o Head Head.cpp g++ -c -o Hello Hello.cpp g++ -c -o Head.o Hello .o g++: Hello.o: 没有这样的文件或目录 g++: 没有输入文件 make: *** [ram] Error 1 我已经更新了我的答案。您不需要-o 选项,只需使用-c 谢谢,帮了大忙。我也在寻找构建共享和静态库的好教程。您是否建议阅读任何特定的文章?【参考方案2】:

make make.w 表示“在名为 Makefile 的默认生成文件中生成目标 make.w”。

你想要指定你的makefile,所以你想要make -f make.w

【讨论】:

【参考方案3】:

您需要在 makefile 名称前加上 -f。

make -f make.w

您可能还想指定要构建的目标

make -f make.w Hello

【讨论】:

以上是关于制作文件问题:总是吐出“‘make.w’无事可做。”的主要内容,如果未能解决你的问题,请参考以下文章

读取一个xib并吐出等效的loadView

Karma 代码覆盖率 - 总是 100%?

Visual Studio 吐出 .lib 而不是 .dll

用Python制作菜单[重复]

已加载的 Xib 总是在制作插座后立即崩溃

RandomForestRegressor 只吐出 1 个预测