1

ubuntu 12.04 に libgtkmm-3.0-dev をインストールし、C++ と gtkmm 3 を使用してプログラムを学習および作成しようとしています。このリンクに移動します "http://developer.gnome.org/gtkmm-tutorial/unstable/sec-basics-simple -example.html.en" を実行して、簡単なサンプル プログラムをコンパイルしてみます。

#include <gtkmm.h>

int main(int argc, char *argv[])
{
  Glib::RefPtr<Gtk::Application> app =
    Gtk::Application::create(argc, argv,
      "org.gtkmm.examples.base");

  Gtk::ApplicationWindow window;

  return app->run(window);
}

私のファイル名は「basic.cc」で、ターミナルを開いて次のコマンドを入力してコンパイルします。

g++ basic.cc -o basic `pkg-config gtkmm-3.0 --cflags --libs`

コンパイルはエラーなしで完了しましたが、ターミナルでタイプ ./basic でプログラムを実行しようとすると、次のエラーが発生します。

~$ ./simple
./simple: symbol lookup error: ./simple: undefined symbol:_ZN3Gtk11Application6createERiRPPcRKN4Glib7ustringEN3Gio16ApplicationFlagsE
~$ 

どうすればこの問題を解決できますか?

このコマンドで任意の gtkmm 2.4 コードをコンパイルできます: " g++ basic.cc -o basic pkg-config gtkmm-3.0 --cflags --libs" およびこのコマンド: " g++ basic.cc -o basic pkg-config gtkmm-2.4 --cflags --libs"

ありがとう

4

3 に答える 3

2

この gtkmm バグに遭遇したと思います。明らかに GTK+ の最近のバージョンによってトリガーされ、現在修正されています: https://bugzilla.gnome.org/show_bug.cgi?id=681323

私はUbuntuにパッケージを更新するように依頼しましたが、通常、それを行うと遅くなります: https://bugs.launchpad.net/ubuntu/+source/gtkmm3.0/+bug/1046469

于 2012-09-05T18:13:59.310 に答える
0

libgtkmm-3.0-dev を再インストールしてみてください。コードは正常にコンパイルされますが、Seg Fault が発生します。に変更Gtk::ApplicationWindowすると機能しGtk::Windowます。

于 2012-06-25T21:13:17.603 に答える
0

インストールに問題はありません。そのコードは悪いです。

を使用して、もう一度試してください。

Gtk::Window window;

ApplicationWindow の代わりに。特定のクラスのGNOME ドキュメントに「TODO」の記述がある場合、それは悪いことです。

于 2012-09-05T14:02:24.130 に答える