首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用makefile构建gtk项目时找不到'gtk/gtk.h‘文件

使用makefile构建gtk项目时找不到'gtk/gtk.h‘文件
EN

Stack Overflow用户
提问于 2019-11-19 12:02:53
回答 1查看 969关注 0票数 0

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

代码语言:javascript
复制
gcc main.c -o midget `pkg-config --cflags --libs gtk+-3.0`

当我尝试使用Makefile时,它失败了。为了清晰起见,我已经将代码分割成src目录中的较小文件(只有主文件在根目录,以及make文件)。我确信在适当的时候我会有问题的--但是现在我甚至不能让它看到gtk!

我得到的错误是:

代码语言:javascript
复制
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如下:

代码语言:javascript
复制
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

我的文件夹的结构是:

代码语言:javascript
复制
.
main.c
main.h
makefile
[src]
   |_gtk_functions.c
   |_gtk_functions.h
   |_gtk_window_setup.c
   |_gtk_window_setup.h
   |_ ...

我看过以下问题--但这似乎对make file for Gtk没有帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-19 15:56:49

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

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

代码语言:javascript
复制
CFLAGS = `pkg-config --cflags gtk+-3.0`
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58933690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档