我试图编译和链接从网上下载的简单程序,以了解如何使用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