问题描述
我有一个Makefile,它无法识别对底层源代码所做的更改。当我尝试构建时,控制台收到以下消息:“make:Nothing to be done for 'all'.”我的感觉是,这可能与我对如何处理不同目录中的文件的理解有缺陷有关。我在StackOverflow上看到过类似的问题,但似乎没有一个能完全解决这个问题,或者这个问题似乎是由其他问题引起的。
项目结构
src:源代码文件位于此处。
包括:头文件在这里。
build:目标文件位于此处。
bin:可执行文件位于此处。
test:测试代码位于此处。
生成文件:make文件。
生成文件
我已经创建了一个名为main. c的基本源文件,并将其放在src中,然后实现了一个简单的make文件,如下所示:
CC = gcc
CFLAGS = -DTESTABLE -Wall -std=c99 -g
all: bin/main
bin/main: build/main.o
build/main.o: src/main.c
clean:
rm -f build/main.o
rm -f bin/main
源文件
#include <stdio.h>
int main( int argc, char *argv[] )
{
printf( "Hi there. For real." );
}
1条答案
按热度按时间c9x0cxw01#
这些行:
告诉make构建
bin/main
需要build/main.o
,构建build/main.o
需要src/main.c
,但是实际上并没有告诉make * 如何 * 构建build/main.o
或bin/main
。也许: