我試圖編譯和鏈接從網上下載的簡單程序,以瞭解如何使用gtk+
庫來製作GUI。GTK +編譯未定義參考C
這裏是我的makefile:
CC = gcc
BIN = gtk_led
SRC = main.c gtkled.c
OBJ = main.o gtkled.o
CPPFLAGS =-Wall -W -ansi -pedantic -O2 `pkg-config --cflags gtk+-2.0`
LDFLAGS = `pkg-config --libs gtk+-2.0`
all: $(BIN)
$(BIN): $(SRC)
$(CC) $(CPPFLAGS) -c $(SRC)
$(CC) $(LDFLAGS) -o $(BIN) $(OBJ)
clean:
rm -f *.o *~ core $(BIN)
當我做make
,構建失敗,出現以下錯誤:
gtkled.o: In function `gtk_led_size_allocate':
gtkled.c:(.text+0x43a): undefined reference to `g_return_if_fail_warning'
gtkled.c:(.text+0x487): undefined reference to `gdk_window_move_resize'
gtkled.o: In function `gtk_led_size_request':
gtkled.c:(.text+0x4f5): undefined reference to `g_return_if_fail_warning'
所以我不明白爲什麼....我新的Linux,所以這對我來說很難:) (在Ubuntu上,使用virtualBox)
謝謝。
這將是更好地顯示「make」正在爲您運行的命令... –
請勿在編譯器標誌中使用-ansi -pedantic。它們完全沒有用處,或者最糟糕的是誤導和錯誤。使用-Wall -Wextra,如果你想從GCC獲得一系列現代編譯器警告。或者,查看gcc手冊頁並選擇對您的代碼庫有意義的警告。 – ebassi