【发布时间】:2014-03-26 15:09:49
【问题描述】:
是否可以使用 makefile 链接两个 C 文件,它们调用彼此的函数,但都有自己的 main 函数。
例如:
C1.c 使用 C2.c 中的函数 f(),但两者都有 main 函数,我希望 C1.c 中的 main 仅被视为 main。
FILES.o=set.o hash.o printnfa.o input.o nfa.o dfa.o terp.o minimize.o defnext.o print_ar.o pairs.o squash.o signon.o print.o lex.o assort.o prnt.o printv.o bintoasc.o ferr.o onferr.o fputstr.o pchar.o driver.o searchenv.o hashadd.o esc.o
PROGRAM= Lexer
INC := -I./debug.h -I./global.h -I./stack.h -I./set.h -I./hash.h
CFLAGS=-DMAIN
all: ${PROGRAM}
${PROGRAM}: ${FILES.o}
${CC} -o $@ ${CFLAGS} $(INC) $^ ${LDFLAGS} ${LDLIBS}
现在 terp.c 有一个 main,而 lex.c 也有一个 main。我只想考虑 lex.c 的 main。
【问题讨论】:
-
您可以在一个文件中围绕
main添加预处理器条件,否则会出现链接器错误(main的多个定义)。 -
是存在于 terp.c 文件中的内容