当前位置: 技术问答>linux和unix
有关gtk在makefile中编译提示找不到gtk/gtk.h的问题
来源: 互联网 发布时间:2017-05-28
本文导语: 最近在做小学期的作业,学习用linux和gtk的编程。在编译gtk上遇到了一个实在搞不定也不知道为什么的问题。 我用makefile来编译源码提示说找不到gtk/gtk.h,但是我如果把命令复制到终端手动编译那个.c文件...
最近在做小学期的作业,学习用linux和gtk的编程。在编译gtk上遇到了一个实在搞不定也不知道为什么的问题。
我用makefile来编译源码提示说找不到gtk/gtk.h,但是我如果把命令复制到终端手动编译那个.c文件则没有任何问题。然后之后编译其他文件连接也都可以。
我的makefile如下:
文件夹结构如下
root@ubuntu:/home/neuedu/Desktop/hamster/volemail_server# ls
bin makefile src
root@ubuntu:/home/neuedu/Desktop/hamster/volemail_server# ls src
utils.h vedb.h veserver.c veserverDAO.h ves_gui.c
vedb.c vemain.c veserverDAO.c veserver.h ves_gui.h
使用makefile编译提示失败:
gcc -c ./src/vemain.c -o bin/vemain.o
In file included from ./src/vemain.c:11:
./src/ves_gui.h:4:21: error: gtk/gtk.h: No such file or directory
make: *** [bin/vemain.o] Error 1
不清楚为什么那个`pkg-config --libs --cflags gtk+-2.0 libglade-2.0 gmodule-export-2.0`没有加进去命令
这一段我另外写了一个小的测试程序还测试了一下,makefile如下:
然后是可以编译的并且能正常运行。
请问这是啥问题?求帮助……被这个问题纠结了一天了
我用makefile来编译源码提示说找不到gtk/gtk.h,但是我如果把命令复制到终端手动编译那个.c文件则没有任何问题。然后之后编译其他文件连接也都可以。
我的makefile如下:
BINDIR=./bin
SRCDIR=./src
OUT=volemail_server
CFLAGS=`pkg-config --libs --cflags gtk+-2.0 libglade-2.0 gmodule-export-2.0`
OBJ=$(BINDIR)/vemain.o $(BINDIR)/vedb.o $(BINDIR)/veserver.o $(BINDIR)/veserverDAO.o $(BINDIR)/ves_gui.o
all:$(OBJ)
gcc `pkg-config --libs --cflags gtk+-2.0 libglade-2.0 gmodule-export-2.0` -o $(BINDIR)/$(OUT) $^ -lsqlite3
$(BINDIR)/vemain.o:
gcc `pkg-config --libs --cflags gtk+-2.0 libglade-2.0 gmodule-export-2.0` -c $(SRCDIR)/vemain.c -o $@
$(BINDIR)/vedb.o:
gcc -c $(SRCDIR)/vedb.c -o $@
$(BINDIR)/veserver.o:
gcc -c $(SRCDIR)/veserver.c -o $@
$(BINDIR)/veserverDAO.o:
gcc -c $(SRCDIR)/veserverDAO.c -o $@
$(BINDIR)/ves_gui.o:
gcc `pkg-config --libs --cflags gtk+-2.0 libglade-2.0 gmodule-export-2.0` -c $(SRCDIR)/ves_gui.c -o $@
文件夹结构如下
root@ubuntu:/home/neuedu/Desktop/hamster/volemail_server# ls
bin makefile src
root@ubuntu:/home/neuedu/Desktop/hamster/volemail_server# ls src
utils.h vedb.h veserver.c veserverDAO.h ves_gui.c
vedb.c vemain.c veserverDAO.c veserver.h ves_gui.h
使用makefile编译提示失败:
gcc -c ./src/vemain.c -o bin/vemain.o
In file included from ./src/vemain.c:11:
./src/ves_gui.h:4:21: error: gtk/gtk.h: No such file or directory
make: *** [bin/vemain.o] Error 1
不清楚为什么那个`pkg-config --libs --cflags gtk+-2.0 libglade-2.0 gmodule-export-2.0`没有加进去命令
这一段我另外写了一个小的测试程序还测试了一下,makefile如下:
CFLAGS=`pkg-config --libs --cflags gtk+-2.0 libglade-2.0 gmodule-export-2.0`
all:gtk.o
gcc $(CFLAGS) -o gtk $^
gtk.o:
gcc `pkg-config --libs --cflags gtk+-2.0 libglade-2.0 gmodule-export-2.0 ` -c gtk.c -o $@
然后是可以编译的并且能正常运行。
请问这是啥问题?求帮助……被这个问题纠结了一天了
|
http://www.linuxquestions.org/questions/programming-9/error-gtk-gtk-h-no-such-file-or-directory-795475/