C Makefile提供了两个.o文件

C Makefile提供了两个.o文件,c,makefile,C,Makefile,我得到了两个带有各自头文件的.o文件。util.o和weatherio.o。我试图为我的项目创建一个makefile,但我似乎无法理解它。我创建了另外两个c文件main.c和analyze.c。analyze包括util.h和weatherio.h,而main包括analyze.h。这是我目前拥有的makefile,但它不工作 analyze: main.o analyze.o util.o weatherio.o cc analyze.o main.o util.o weatherio

我得到了两个带有各自头文件的.o文件。util.o和weatherio.o。我试图为我的项目创建一个makefile,但我似乎无法理解它。我创建了另外两个c文件main.c和analyze.c。analyze包括util.h和weatherio.h,而main包括analyze.h。这是我目前拥有的makefile,但它不工作

analyze: main.o analyze.o util.o weatherio.o
    cc analyze.o main.o util.o weatherio.o -o analyze
analyze.o: weatherio.h util.h analyze.c analyze.h
    cc -c analyze.c 
main.o: main.c analyze.h
    cc -c main.c

如果执行make会发生什么?它将编译它,但前提是我不使用weatherio或util中的任何函数。例如,如果我从util inside analyze调用一个函数,它将不会编译,并表示对我调用的函数有一个未定义的引用。我正在使用Netbeans IDE我不使用Netbeans,但是您可以修改makefile以使您的更改生效(添加一个额外的选项,例如
-I/I/am/here
,并在编译的输出中查找该选项)。如果您在编译和链接时也看不到这一点,那么NetBeans使用的makefile与您认为的不一样。是的,我可以在更改makefile时看到。编辑:嗯,我从Netbeans复制了所有内容,并使用cygwin制作,它似乎工作得很好。不确定问题出在哪里。听起来好像
util.o
weatherio.o
没有包含您被告知的内容。您是否有
objdump