''gtk / gtk.h'使用makefile生成gtk项目时找不到文件

问题描述 投票:0回答:1

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

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

c makefile gtk3
1个回答
0
投票

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

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

CFLAGS = `pkg-config --cflags gtk+-3.0`
© www.soinside.com 2019 - 2024. All rights reserved.