2

Scintilla Web サイトからの例をコンパイルしようとしています。私はそれをコンパイルするのにゼロの運がありました。私は scintilla 自体と scite をうまくコンパイルできますが、餌は別の話です。提供された Makefile でコンパイルしようとすると、次のエラーが発生します。

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

私は GTK を持っていて、さまざまなバージョンの GTK を使用しています。私は助けを求めてインターネットを罵倒し、マニュアルページを次々と読みましたが、何が問題なのかわかりません。そのエラーが発生しない場合は、別のエラーが発生します。

元のメイクファイルは次のとおりです。

.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を使用しています

4

2 に答える 2

1

これに戻って... すでに問題を解決している場合は、お知らせください。それがどのように見え始めているかというと、これは価値があるというよりは厄介な問題です。:)

これが私がしたことです:

  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 には、3.0 に変更する必要がある gtk+-2.0 への参照があります。
  2. bait の Makefile では、特定のディレクトリでビルドする必要があります ( INCLUDEDIRSscintilla ディレクトリにいる必要があることに注意してください)。
  3. アーカイブ scintilla.a をビルドする必要があります (これは提供されておらず、bait.o に必要です)
  4. アーカイブをビルドするには、makefile を変更する必要があります (次の行をコメントアウトします。

    ifdef GTK3 else GTKVERSION=gtk+-2.0 endif

  5. それを修正してアーカイブを構築すると、さらに約100万の未定義の参照が次ScintillaGTK.cxx:(.text+0x1374)の場所にあります。

ともかく。もう少しお時間をいただきます。ご自身でこの問題を解決する場合はお知らせください。

于 2012-09-14T19:10:45.770 に答える