c语言 - Scintilla- 无法编译诱饵示例



我正在从Scintilla网站编译诱饵示例。我在编译它方面运气不佳。我可以很好地编译闪烁体本身,以及scite,但诱饵是另一回事。当我尝试使用提供的Makefile进行编译时,我会得到以下错误:

bait.c:1:21: fatal error: gtk/gtk.h: No such file or directory

我有GTK,并且使用不同版本的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

回到这个。。。如果你已经解决了这个问题,请告诉我。现在的情况是,这比它的价值更麻烦。:)

我是这么做的:

  1. 在我的虚拟盒子上安装Mint 13
  2. libgtk-3-dev(及其支持包)
  3. 验证我是否可以使用pkg-config --cflags --libs gtk+-3.0构建
  4. 找到gtk.h(/usr/include/gtk-3.0/gtk/gtk.h)和支持文件
  5. 下载诱饵示例

问题是:

  1. bait的Makefile引用了gtk+-2.0,您需要将其更改为3.0
  2. bait的Makefile要求您在一个特定的目录中构建(注意INCLUDEDIRS需要您在闪烁目录中
  3. 需要构建archive闪烁器.a(它没有提供,是bait.o所必需的)
  4. 构建档案需要修改makefile(注释掉以下几行:

    ifdef GTK3elseGTKVERSION=gtk+-2.0endif

  5. 一旦你修复了这个问题并构建了档案,在ScintillaGTK.cxx:(.text+0x1374)等中还有大约一百万个未定义的引用。。

不管怎样。我会再给它一点时间,如果你自己解决这个问题,请告诉我!

我已经完成了这个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

最新更新