我最近问了这个关于在 C 中编译多个文件以便一个文件main.c
可以引用一个文件的问题modules.c
。答案最终是将模块文件制作成头文件并主要导入它。
我现在被告知这是一种不正确的方法,因为 C 支持模块化编译。我的 Makefile 在下面,这应该是正确的,但是我在main.c
--中的每个函数调用都收到错误warning: implicit declaration of function X
。
我需要做什么才能正确编译它,使用两个.c
文件而不是一个.c
和.h
文件?该main.c
文件有一个main()
函数,需要能够调用modules.c
.
生成文件:
#################################################################
# Variables
# -- allows C-source and assembly-source files mix. Again, the
# -- indented lines start with a TAB(^I) and not spaces..
#################################################################
CFLAGS = -g -Wall -Werror
LDFLAGS =
CC = gcc
LD = gcc
TARG = driver
OBJS = modules.o main.o
#################################################################
# Rules for make
#################################################################
$(TARG): $(OBJS)
$(LD) $(LDFLAGS) $(OBJS) -o $(TARG)
%.o: %.c %.s
$(CC) $(CFLAGS) -c $<
clean:
rm -f *.o *˜ $(TARG)
print:
pr -l60 Makefile modules.c main.c | lpr
#################################################################
# Dependencies -- none in this program
#################################################################