我想从Scintilla网站编译bait example。让它编译时我有幸运气。我可以编译scintilla本身就好,以及scite但诱饵是一个不同的故事。当我尝试使用提供的Makefile进行编译时,出现以下错误:
bait.c:1:21: fatal error: gtk/gtk.h: No such file or directory
我有GTK,并使用它的不同版本。我尝试过这似乎并不重要。我已经在互联网上寻求帮助,在手册之后阅读手册,我无法弄清问题是什么。如果我没有得到那个错误,那么我就得到另一个错误。
这是原始的makefile:
.SUFFIXES: .c .o .h .a
INCLUDEDIRS=-I../scintilla/include
CXXFLAGS= -DGTK -DSCI_LEXER -W -Wall
LEXEROBJS=$(wildcard ../scintilla/gtk/Lex*.o)
all: bait
shiz:
gcc `pkg-config --cflags gtk+-2.0` $(INCLUDEDIRS) $(CXXFLAGS) -c $< -o $@
bait: bait.o $(LEXEROBJS) ../scintilla/bin/scintilla.a
gcc `pkg-config --libs gtk+-2.0 gthread-2.0` -lstdc++ -DGTK $^ -o $@
clean:
rm -rf bait *.o
我也尝试过使用codebrainz的GtkScintilla。我甚至无法做那项工作。我总是得到上述错误或错误说:
fatal error: gtk/gtk.h: No such file or directory
我真的很感激这方面的任何帮助。谢谢。
编辑:我正在使用Linux Mint
答案 0 :(得分:1)
回到这个......如果你已经解决了这个问题,请告诉我。它开始看起来是什么,这比它的价值更麻烦。 :)
这就是我的所作所为:
pkg-config --cflags --libs gtk+-3.0
/usr/include/gtk-3.0/gtk/gtk.h
)和支持文件以下是问题:
INCLUDEDIRS
需要你在scintilla目录中构建存档需要您修改makefile(注释掉这些行:
ifdef GTK3
else
GTKVERSION=gtk+-2.0
endif
一旦你解决了这个并建立了档案,那么在ScintillaGTK.cxx:(.text+0x1374)
之类的大约有一百多个未定义的引用......等等。
反正。我会给它一点时间,如果你自己关闭这个问题,请告诉我!
答案 1 :(得分:-1)
我已经完成了这个makefile
##### Makefile #####
# Make file for bait on Linux or compatible OS
# Released to the public domain 2000 by Neil Hodgson neilh@scintilla.org
# This makefile tested with GCC 3.2 and GNOME 2.0
.SUFFIXES: .c .o .h .a
ifdef GTK3
GTKVERSION=gtk+-3.0
else
GTKVERSION=gtk+-2.0
endif
INCLUDEDIRS=-I../scintilla/include
CXXFLAGS= -DGTK -DSCI_LEXER -W -Wall
LEXEROBJS=$(wildcard ../scintilla/gtk/Lex*.o)
all: bait
.c.o:
gcc `pkg-config --cflags $(GTKVERSION)` $(INCLUDEDIRS) $(CXXFLAGS) -c $< -o $@
bait: bait.o $(LEXEROBJS) ../scintilla/bin/scintilla.a
gcc -DGTK $^ -o $@ -lstdc++ `pkg-config --libs $(GTKVERSION) gthread-2.0` -lm -lgmodule-2.0
clean:
rm -rf bait *.o