Estoy tratando de usar Autotools para construir mi programa en C que debe vincularse con ciertas bibliotecas. Solo contiene un archivo fuente C.Banderas del vinculador en el lugar equivocado
Este es el Makefile.am asociada a ella:
bin_PROGRAMS=game
game_SOURCES=main.c
game_CFLAGS=`pkg-config --cflags libglfw`
game_LDFLAGS=`pkg-config --libs libglfw`
Cuando ejecuto make, se trata de compilarlo usando esto:
gcc `pkg-config --cflags libglfw` -g -O2 `pkg-config --libs libglfw` -o game game-main.o
Sin embargo esto es incorrecto, ya que el enlace de la biblioteca las banderas deben estar al final, o bien dará errores sobre referencias indefinidas. Por ejemplo si funciono esto:
gcc `pkg-config --cflags libglfw` -g -O2 -o game game-main.o `pkg-config --libs libglfw`
Se compila bien.
¿Cómo puedo hacer para que el LDFLAGS primario se añada al final en lugar de en el medio?
¿Cómo voy a resolver esto con un makefile regular, en lugar de autotools? Por lo que puedo decir, make no respeta LDADD (solo autotools). –
Seguimiento: con archivos make normales, la solución es usar 'LOADLIBES = -lm' en lugar de' LDFLAGS = -lm'. –