Я пытаюсь использовать Autotools для создания моей программы на C, которая должна быть связана с определенными библиотеками. Он содержит только один исходный файл C.Флаги компоновщика в неправильном месте
Это Makefile.am с ним связано:
bin_PROGRAMS=game
game_SOURCES=main.c
game_CFLAGS=`pkg-config --cflags libglfw`
game_LDFLAGS=`pkg-config --libs libglfw`
Когда я бегу сделать, он пытается скомпилировать его с помощью этого:
gcc `pkg-config --cflags libglfw` -g -O2 `pkg-config --libs libglfw` -o game game-main.o
Однако это неверно, так как ссылка библиотеки флаги должны быть в конце, иначе они будут давать ошибки о неопределенных ссылках. Например, если я запускаю это:
gcc `pkg-config --cflags libglfw` -g -O2 -o game game-main.o `pkg-config --libs libglfw`
Он компилируется в порядке.
Как я могу сделать так, чтобы основной LDFLAGS был добавлен в конце, а не в середине?
Как бы решить эту проблему с регулярным Makefile, а не Autotools? Насколько я могу судить, make не уважает LDADD (просто autotools). –
Последующие действия: при использовании обычных make-файлов решение должно использовать 'LOADLIBES = -lm', а не' LDFLAGS = -lm'. –