1

aptitude を使用して Ubuntu 13.04 に gtkmm 3 をインストールしました (削除したいときにインストールされたものを覚えているので、aptitude が好きです):

sudo aptitude install libgtkmm-3.0-dev --with-recommends

codelite 5.1.2 とデフォルトの gtk++ ツール チェーンを使用して、コンパイラにパスを追加しました。

/usr/include/gtkmm-3.0 - gtkmm.h へのパス

GTKMM を使用したプログラミングで最初のサンプル アプリをビルドしようとしました。

#include <gtkmm.h>
int main ( int argc, char *argv[] )
{

    Gtk::Main kit ( argc, argv );
    Gtk::Window window;
    Gtk::Main::run ( window );
    return 0;

}

gtkmm フレームワーク全体を含む gtkmm.h から発生するいくつかの「インクルード ファイルが見つかりません」エラーを追跡した後、コンパイラ インクルード パスは次のようになります。

/usr/include/gtkmm-3.0
/usr/include/glibmm-2.4
/usr/lib/i386-linux-gnu/glibmm-2.4/include
/usr/include/glib-2.0

そして、すべての地獄がglib.hから解き放たれています:

/bin/sh -c 'make -j 4 -e -f "Calendars_wsp.mk"'
----------プロジェクトのビルド:[ CalendarsGUI - デバッグ ]----------
.........

/gtkmm-3.0 -I/usr/include/glibmm-2.4 -I/usr/lib/i386-linux-gnu/glibmm-2.4/include -I//usr/include/glib-2.0
//usr/include/glib-2.0/glib/gtypes.h:36:0 からインクルードされたファイルで、
                 //usr/include/glib-2.0/glib/galloca.h:34 から、
                 //usr/include/glib-2.0/glib.h:32 から、
                 /usr/include/glibmm-2.4/glibmm/thread.h:46 から、
                 /usr/include/glibmm-2.4/glibmm.h:87 から、
                 /usr/include/gtkmm-3.0/gtkmm.h:87 から、
                 main.cpp:16 から:
***//usr/include/glib-2.0/glib/gversionmacros.h:179:2: error: #error "GLIB_VERSION_MIN_REQUIRED must be >= GLIB_VERSION_2_26"***
//usr/include/glib-2.0/glib/galloca.h:34:0 からインクルードされたファイルで、
                 //usr/include/glib-2.0/glib.h:32 から、
                 /usr/include/glibmm-2.4/glibmm/thread.h:46 から、
                 /usr/include/glibmm-2.4/glibmm.h:87 から、
                 /usr/include/gtkmm-3.0/gtkmm.h:87 から、
                 main.cpp:16 から:
***//usr/include/glib-2.0/glib/gtypes.h:448:2: error: #error unknown ENDIAN タイプ
.......
make: *** [すべて] エラー 2
2 つのエラー、2 つの警告***

(gtkmm 2.4を使用しようとしたときにも同じ問題が発生しました)

明らかに、ここで何かが欠けています。私は何を間違っていますか?gtkmm プロジェクトをビルドするには、他に何をする必要がありますか?

4

2 に答える 2

4

gtkmm を使用する場合は、pkg-config ツールを使用することをお勧めします。コードライトからもこれを行うことができます:

プロジェクトを右クリック: 設定 -> 共通設定 -> コンパイラ -> C++ コンパイラ オプション: そして追加:

$(shell pkg-config gtkmm-3.0 --cflags)

別のオプションがある場合は、セミコロンで区切る必要があります

次に、リンカ オプションに以下を追加します: プロジェクトを右クリック: [設定] -> [共通設定​​] -> [リンカ] -> [オプション]:

$(shell pkg-config gtkmm-3.0 --libs)

繰り返しますが、別のオプションがある場合は、セミコロンで区切る必要があります

追加したハードコーディングされたインクルード パスをすべて削除します。上記の 2 つで十分です。

ノート:

この正確な質問は、codelite のフォーラムでも回答されています: http://forums.codelite.org/viewtopic.php?f=11&t=1396&p=6416&hilit=gtkmm#p6410

エラン

于 2013-06-28T03:52:02.510 に答える