7
我正在嘗試使用Autotools來構建我的C程序,該程序需要與某些庫鏈接。它只包含一個C源文件。錯誤位置的鏈接器標誌
這是與它相關的Makefile.am:
bin_PROGRAMS=game
game_SOURCES=main.c
game_CFLAGS=`pkg-config --cflags libglfw`
game_LDFLAGS=`pkg-config --libs libglfw`
當我運行make,它試圖以此來編譯:
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解決這個問題,而不是自動工具?據我所知,make不尊重LDADD(只是autotools)。 – 2012-08-20 19:16:23
後續:使用常規makefile,解決方案是使用'LOADLIBES = -lm'而不是'LDFLAGS = -lm'。 – 2012-08-20 19:33:48