【发布时间】:2023-03-13 05:15:02
【问题描述】:
我正在尝试编译和链接一个从网上下载的简单程序,以了解如何使用 gtk+ 库制作 GUI。
这是我的生成文件:
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。它们充其量是完全无用的,或者最坏的情况是误导和错误的。如果您想要来自 GCC 的一组体面的现代编译器警告,请使用 -Wall -Wextra。或者,查看 gcc 手册页并选择对您的代码库有意义的警告。