繁体   English   中英

makefile只为头文件生成文件对象吗?

[英]makefile generate file object for the header file only?

我在makefile 当我在终端中执行make commande时,它必须生成header.omain.o ,然后将它们组合以生成可执行的kmeans.o文件,但没有,它仅生成header.okm.o并停止没有任何错误信息。

这是我的make文件:

CFLAGS = -ggdb
DEFINES = -DDEBUGGA
INCLUDES = 
LIBS = -lstdc++
EXAMPLE = kmeans.o
CC=g++

.cpp.o:
    $(CC) -c $(CFLAGS) $(DEFINES) $(INCLUDES) $<

all::   km.o kmeans.o 

km.o:   km.cpp km.hpp
gnuplot_i.o:    gnuplot_i.hpp
kmeans.o:   main.cpp

kmeans: $(EXAMPLE)
    $(CC) -o $@ $(CFLAGS) $(EXAMPLE) $(LIBS)

clean: 
    rm -f $(EXAMPLE) kmeans

km.cppkm.hpp是头文件及其实现。 gnuplot_i.hpp是其实现的标头。 main.cpp文件链接所有这些库的文件。

此makefile中的默认目标是all: km.o kmeans.o

因此,当您运行make ,它将运行。 因此,make将创建这两个.o文件并停止。

如果要使makemake kmeans相同,则需要all: kmeans作为默认规则,或将kmeans目标移至all目标之上(因为第一个目标是默认目标)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM