gpt4 book ai didi

c - 使用 makefile 构建 gtk 项目时找不到“gtk/gtk.h”文件

转载 作者:行者123 更新时间:2023-11-30 14:34:32 29 4
gpt4 key购买 nike

当我手动构建项目时,它会正确构建:

gcc main.c -o midget `pkg-config --cflags --libs gtk+-3.0`

当我尝试使用 Makefile 时,它​​失败了。为了清楚起见,我将代码分成了 src 目录中的较小文件(只有主文件和 make 文件位于根目录下)。我确信我会在适当的时候遇到这些问题 - 但目前我什至无法让它看到 gtk!

我得到的错误是:

gcc    -c -o *.o main.c
In file included from main.c:1:
In file included from ./main.h:2:
./src/gtk_functions.h:3:9: fatal error: 'gtk/gtk.h' file not found
#import <gtk/gtk.h>
^~~~~~~~~~~
1 error generated.
make: *** [*.o] Error 1

我的makefile如下:

TARGET = midget
CC = gcc
GTKLIBS = `pkg-config --cflags --libs gtk+-3.0`
SRC_DIR = src

midget: *.o
$(CC) -o $(TARGET) $(GTKLIBS) *.o

$(SRC_DIR)/gtk_%.o: %.c
$(CC) -c $(SRC_DIR)/gtk_%.c $(GTKLIBS) -o $(SRC_DIR)/%.o

clean :
rm -f $(TARGET) *.o

我的文件夹结构是:

.
main.c
main.h
makefile
[src]
|_gtk_functions.c
|_gtk_functions.h
|_gtk_window_setup.c
|_gtk_window_setup.h
|_ ...

我查看了以下问题 - 但它似乎没有帮助 make file for Gtk

最佳答案

您从未指定编译器在编译 *.o 文件时应使用 GTKLIBS

规范的方法是使用 CFLAGS 变量:

CFLAGS = `pkg-config --cflags gtk+-3.0`

关于c - 使用 makefile 构建 gtk 项目时找不到“gtk/gtk.h”文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58933690/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com