所以我有这个问题:我在我的 C 程序中声明了一些外部全局变量。如果我不对 gcc 使用 -c 选项,我会收到未定义的引用错误。但是使用该 -c 选项,链接没有完成,这意味着我没有生成可执行文件。
那么我该如何解决呢?
这是我的makefile(感谢Alex)
CC = gcc # compiler/linker frontend
INCL = -I$(INCL_DIR) # includes
DEFS = -D_DEBUG_ # defines
CFLAGS = -g $(INCL) $(DEFS) # compiler flags
LFLAGS = -lpthread -lm -g # linker flags
OBJ = approx.o producteur.o sequentialApproximation.o main.o
BIN = calculPi.exe
LINKOBJ = approx.o producteur.o sequentialApproximation.o main.o
RM = rm -fv
all: $(BIN)
clean:
${RM} *\~ \#*\# $(OBJ)
clean_all: clean
${RM} $(BIN)
cleanall: clean
${RM} $(BIN)
$(BIN): $(OBJ)
$(CC) $(LFLAGS) -o $@ $^
main.o: main.c
approx.o: approx.c approx.h
producteur.o: producteur.c producteur.h
sequentialApproximation.o : sequentialApproximation.c sequentialApproximation.h
.c.o:
$(CC) $(CFLAGS) -c $<
这是 make 的输出:http: //pastebin.com/NzsFetrn
我确实在 approx.h(外部和全局)中声明了外部变量,我尝试在 approx.c 中调用它们,但它不起作用。