c++ - Makefile 不读取其余部分

标签 c++ g++ makefile

我的 make 文件有问题。它不会在创建第一个 .o 文件后继续读取。这是我的制作文件:

CC = g++
CFLAGS = -g
LDFLAGS = -lm

PokerEval.o: PokerEval.cpp
    ${CC} ${CFLAGS} -c PokerEval.cpp

random.o: random.cpp random.h
    ${CC} ${CFLAGS} -c random.cpp

myprogram: random.o PokerEval.o
    ${CC} ${CFLAGS} PokerEval.o random.o ${LDFLAGS} -o myprogram

clean:
    rm -f myprogram *.o
.PHONY: all clean

所以当我运行它时,我得到的是:

$ make
g++ -g -c PokerEval.cpp

最佳答案

Make 通常1 构建生成文件中的第一个 目标,除非您在命令行中指定目标。

因此,您通常首先指定您的主要目标(例如,可执行文件),然后再指定它所依赖的任何目标。

请注意,您可以(并且经常这样做)在第一个目标之前定义——它们不算作目标。


  1. “通常”在这种情况下意味着“总是,使用适当设计的 make 实用程序”。异常(exception)是他们称为 make 的一种古老的 Microsoft 工具,但它构建了一切,无论如何。他们当前的 nmake(“new make”)可以正常工作(至少是半正确的)已经存在了几十年。

关于c++ - Makefile 不读取其余部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16137464/

相关文章:

在Windows上编译C99兼容的.so

c++ - 如果我需要每秒读取文件 0...5 次,是否值得保持文件描述符打开?

g++ - 增加 OS X Lion 中的堆栈大小

c++ - 自动模板参数 : g++ 7. 3 vs clang++ 6.0 : Which compiler is correct?

c++ - 在g++中收到的预期主表达式

scripting - 制作/制作文件进度指示!

c++ - 使用 cmake 构建我的 C++ 项目的正确方法?

c++ - 使用 enable_if 和 SFINAE 时,函数参数类型推导(标准容器,例如 vector )失败

c++ - QDialog 中 QString 的奇怪行为

c++ - std::enable_if 更改成员 *variable* 声明/类型