По сути, вы никогда не должны связывать программу, вызывая ld
напрямую;всегда используйте ваш компилятор для создания ссылок.Он передает всевозможные дополнительные аргументы ld
, чтобы все заработало.Заменить $(LD)
на $(CC)
.Делайте это независимо от того, действительно ли это решает вашу проблему.
'Странно, что вы не получаете имя общего объекта, указанное в сообщении об ошибке.
Эта страница руководства для rintf () указывает, что оно объявлено в <math.h>
;скорее всего, вам нужно добавить библиотеку математики в строку ссылки: -lm
.
Я бы переписал некоторые из ваших make-файлов:
LIB1 = -lmarkdown
LIB2 = -lm
LIBS = $(LIB1) $(LIB2)
LDFLAGS = -L $(LIB_DIR)
...
$(MAIN): $(MAIN).o
$(CC) $^ $(LDFLAGS) $(LIBS) -o $(BIN_DIR)/$@