C代码编译失败
我有低于这个Makefile和它我都包括C代码编译失败
GTK/gtk.h
和
的WebKit/webkit.h
但是当我尝试使用make命令构建项目我有错误
错误:gtk/gtk.h:没有这样的文件或目录
错误:WebKit的/ webkit.h:如果没有这样的文件或目录
的GTK + -2.0.pc和WebKit ... PC是在usr/lib中/ pkgconfig
make文件:
CC=gcc
CFLAGS=-g -Wall `pkg-config --cflags gtk+-2.0 webkit-1.0`
LDFLAGS+=`pkg-config --libs gtk+-2.0 webkit-1.0`
INCLUDE=/usr/include
LIB=/usr/lib
SOURCES=wrapper.c wrapper.h browser.c
OBJ=browser
all: $(SOURCES) $(OBJ)
$(OBJ): $(SOURCES)
$(CC) $(CFLAGS) $(LDFLAGS) -I $(INCLUDE) -L $(LIB) $(SOURCES) -o $(OBJ)
clean:
rm -rf $(OBJ)
尝试设置CXXFLAGS以及CFLAGS。
实际上,CXXFLAGS用于C++编译器。也许你的意思是CPPFLAGS? http://*.com/questions/495598/difference-between-cppflags-and-cxxflags-in-gnu-make – 2010-03-02 20:24:30
反引号不是你在Makefile中运行shell命令的方式。你的CFLAGS和LDFLAGS线或许应该像
CFLAGS=-g -Wall $(shell pkg-config --cflags gtk+-2.0 webkit-1.0)
LDFLAGS+=$(shell pkg-config --libs gtk+-2.0 webkit-1.0)
虽然你是正确的,你需要'$(shell ...)'让命令运行Makefile,使用反引号没有任何问题。使用反引号,make会将带反引号的命令行传递给shell,并且shell会在调用编译器之前处理它。 – 2010-03-02 20:27:46
没有变化起来 – user248230 2010-03-02 20:30:14
制造文件中没有错误 错误在系统环境中,所以我可以改变它以让它运行 – user248230 2010-03-02 20:34:55
唯一包含您指定的路径是/usr/include
,因此它看起来FO rthe文件在:
/usr/include/gtk/gtk.h
/usr/include/webkit/webkit.h
除非你有其他路径指定了CPATH或C_INCLUDE_PATH环境变量。
将usr/lib/pkgconfig
添加为-I路径。
你确实在/ usr/include目录下有gtk/gtk.h和webkit/webkit.h吗?开发包是否提供了它们?
是的,我有包含目录下的这些文件 – user248230 2010-03-02 21:23:42
拥有/usr/include/gtk/gtk.h和/usr/include/webkit/webkit.h并将\'... \'更改为$(shell .. )你应该没有问题,这个makefile适用于这个改变。 – 2010-03-04 09:52:11
你可以发布正在运行的make的实际输出吗? – jamessan 2010-03-02 21:32:29
您是否安装了'pkg-config'?从shell中输出“pkg-config --cflags gtk + -2.0 webkit-1.0”的输出是什么? – ntd 2010-03-24 14:23:21