У меня возникли проблемы с Makefile для проекта, над которым я работаю. Я получаю «неопределенную ссылку на« timer_create »» и тому подобное, даже если они включены в linkopts. Я думаю, проблема в том, что библиотеки находятся в начале строки компиляции, а не в конце, но я довольно незнаком с таким Makefile, как этот. Как я могу убедиться, что ссылки идут в конце, а не в начале? Вот часть Makefile, о котором я говорю, make, он пытается это:
gcc -g -lpthread -lrt -Wall -o scheduler scheduler.o worker.o list.o smp5_tests.o testrunner.o
Но я уверен, что так и должно быть:
gcc -g -Wall -o scheduler scheduler.o worker.o list.o smp5_tests.o testrunner.o -lpthread -lrt
Вот Makefile:
CC = gcc
CCOPTS = -c -g -Wall
LINKOPTS = -g -lpthread -lrt -Wall
EXEC=scheduler
OBJECTS=scheduler.o worker.o list.o smp5_tests.o testrunner.o
all: $(EXEC)
$(EXEC):$(OBJECTS)
$(CC) $(LINKOPTS) -o $@ $^