error: gtk/gtk.h: No such file or directory

时间:2022-02-16 22:52:53
 很奇怪:在命令行里直接写gcc -c main.c -o main.o -I `pkg-config --cflags --libs gtk+-2.0 gstreamer-0.10`就没有问题,但是写在makefile里就报错(RT),makefile如下:
CFLAGS=`pkg-config --cflags gtk+-2.0 gstreamer-0.10`
LIBS=`pkg-config --libs gtk+-2.0 gstreamer-0.10`

Player:main.o gui.o
gcc main.o gui.o -o Player $(CFLAGS) $(LIBS)
main.o:main.c
gcc -c main.c -o main.o $(CFLAFS) $(LIBS)
gui.o:gui.c
gcc -c gui.c -o gui.o $(CFLAFS) $(LIBS)

clean:rm *.o

7 个解决方案

#1


gcc -c main.c -o main.o  -I `pkg-config --cflags --libs gtk+-2.0 gstreamer-0.10`

#2


很明显是说没有gtk/gtk.h这样的头文件

#3


我也是同样的问题,makefile如下:
stargazer : stargazer.o PacketCapture.o StargazerGUI.o
         mkdir bin
         gcc stargazer.o PacketCapture.o StargazerGUI.o -Wall -o stargazer `pkg-config --cflags --libs gtk+-2.0`
stargazer.o : stargazer.h stargazer.cc
        gcc stargazer.cc -Wall -c
PacketCapture.o : PacketCapture.h PacketCapture.cc
        gcc PacketCapture.cc -Wall -c
StargazerGUI.o : StargazerGUI.h StargazerGUI.cc
        gcc StargazerGUI.cc -Wall -c `pkg-config --cflags --libs gtk+-2.0`
编译报错:error : gtk/gtk.h no such file or directory
但是我在shell中直接用
$ gcc -o stargazer stargazer.h stargazer.cc PacketCapture.h PacketCapture.cc StargazerGUI.h StargazerGUI.cc `pkg-config --cflags --libs gtk+-2.0`
编译就没有这个错误
我的gtk+环境应该没有问题,照教程上的例子和gcc编译命令可以显示出窗口

不知道何解啊,在线等答案!!!

#4


求高手指点啊~

#5


-I直接指向gtk.h 所在的目录。

#6


找不到那个文件,你搜索下那个文件文件在哪。然后加进去

-Ixxx/gtk/gtk.h    把xxx这个替换成你找到的路径

#7


同样的问题,求怎么改makefile
CFLAGS=`pkg-config --cflags --libs glib-2.0`
fsdumper : nand.o filesystem.o fs_dumper.o
gcc -o fsdumper nand.o filesystem.o fs_dumper.o
nand.o : nand.c nand.h
gcc -c nand.c
filesystem.o : filesystem.c filesystem.h
gcc -c filesystem.c
fs_dumper.o : fs_dumper.c
gcc -c fs_dumper.c

#1


gcc -c main.c -o main.o  -I `pkg-config --cflags --libs gtk+-2.0 gstreamer-0.10`

#2


很明显是说没有gtk/gtk.h这样的头文件

#3


我也是同样的问题,makefile如下:
stargazer : stargazer.o PacketCapture.o StargazerGUI.o
         mkdir bin
         gcc stargazer.o PacketCapture.o StargazerGUI.o -Wall -o stargazer `pkg-config --cflags --libs gtk+-2.0`
stargazer.o : stargazer.h stargazer.cc
        gcc stargazer.cc -Wall -c
PacketCapture.o : PacketCapture.h PacketCapture.cc
        gcc PacketCapture.cc -Wall -c
StargazerGUI.o : StargazerGUI.h StargazerGUI.cc
        gcc StargazerGUI.cc -Wall -c `pkg-config --cflags --libs gtk+-2.0`
编译报错:error : gtk/gtk.h no such file or directory
但是我在shell中直接用
$ gcc -o stargazer stargazer.h stargazer.cc PacketCapture.h PacketCapture.cc StargazerGUI.h StargazerGUI.cc `pkg-config --cflags --libs gtk+-2.0`
编译就没有这个错误
我的gtk+环境应该没有问题,照教程上的例子和gcc编译命令可以显示出窗口

不知道何解啊,在线等答案!!!

#4


求高手指点啊~

#5


-I直接指向gtk.h 所在的目录。

#6


找不到那个文件,你搜索下那个文件文件在哪。然后加进去

-Ixxx/gtk/gtk.h    把xxx这个替换成你找到的路径

#7


同样的问题,求怎么改makefile
CFLAGS=`pkg-config --cflags --libs glib-2.0`
fsdumper : nand.o filesystem.o fs_dumper.o
gcc -o fsdumper nand.o filesystem.o fs_dumper.o
nand.o : nand.c nand.h
gcc -c nand.c
filesystem.o : filesystem.c filesystem.h
gcc -c filesystem.c
fs_dumper.o : fs_dumper.c
gcc -c fs_dumper.c