Итак, у меня есть эта проблема: я объявляю некоторые внешние глобальные переменные в своей программе C. Если я не использую параметр -c для gcc, я получаю ошибки неопределенных ссылок. Но с этой опцией -c связывание не выполняется, что означает, что у меня не сгенерирован исполняемый файл.
Итак, как мне решить эту проблему?
Вот мой makefile (спасибо Алексу)
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
Я объявлял внешние переменные в приблизительно.h (внешние и глобальные) и пытаюсь вызывать их в приблизительно.с, и там это не работает.