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::ApplicationWindowGtk::Window.

于 2012-06-25T21:13:17.603 回答
0

您的安装没有问题。那个代码很糟糕。

再试一次,使用

Gtk::Window window;

而不是应用程序窗口。当给定类的GNOME 文档有“TODO”的描述时,这是一件坏事。

于 2012-09-05T14:02:24.130 回答