Scintilla-无法编译诱饵的例子

时间:2012-09-14 18:13:13

标签: c scintilla

我想从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

2 个答案:

答案 0 :(得分:1)

回到这个......如果你已经解决了这个问题,请告诉我。它开始看起来是什么,这比它的价值更麻烦。 :)

这就是我的所作所为:

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

    1. 诱饵的Makefile引用了gtk + -2.0,您需要将其更改为3.0
    2. bait的Makefile要求你构建一个特定的目录(注意INCLUDEDIRS需要你在scintilla目录中
    3. 存档scintilla.a需要构建(它没有提供,并且是bait.o所必需的)
    4. 构建存档需要您修改makefile(注释掉这些行:

      ifdef GTK3 else GTKVERSION=gtk+-2.0 endif

    5. 一旦你解决了这个并建立了档案,那么在ScintillaGTK.cxx:(.text+0x1374)之类的大约有一百多个未定义的引用......等等。

    6. 反正。我会给它一点时间,如果你自己关闭这个问题,请告诉我!

答案 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