GTK你好世界不在OSX上工作

时间:2014-06-29 09:50:09

标签: macos gtk

我刚开始使用GTK并希望创建跨平台应用程序。我已经完成了一些教程并在https://developer.gnome.org/gtk-tutorial/stable/c39.html#SEC-HELLOWORLD复制了示例,并使用gcc -o gtkTest gtkTest.c 'pkg-config --libs --cflags gtk+-3.0'进行了编译,但是当我去运行它时,我得到了:

Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!
dyld: lazy symbol binding failed: Symbol not found: _cairo_xlib_surface_create
  Referenced from: /usr/local/lib/libgdk-3.0.dylib
  Expected in: /usr/local/lib/libcairo.2.dylib

dyld: Symbol not found: _cairo_xlib_surface_create
  Referenced from: /usr/local/lib/libgdk-3.0.dylib
  Expected in: /usr/local/lib/libcairo.2.dylib

我不确定这意味着什么(我的编程能力有限) - 任何想法? 谢谢, 编

1 个答案:

答案 0 :(得分:1)

如果这不是拼写错误,你必须有反引号(`)而不是单引号(')。

执行反引号下的命令,但单引号下的命令不是。

所以你有:

    gcc -o gtkTest gtkTest.c `pkg-config --cflags --libs gtk+-3.0`

如果这不是问题,请尝试重新安装GTK。

<强>更新

尝试重新安装Cairo,因为当您与gtk + -3.0链接时,您将与Cairo链接。 这是一个GTK + 2教程,对于GTK + 3,请关注this教程。

更新2:

您是否将GTK安装到标准路径? / usr / local / include for includes,或OSX上的任何内容?如果你没有,你必须输入bash:

    gcc -o gtkTest gtkTest.c `pkg-config --cflags --libs gtk+-3.0` -L/whatever/library/path -I/whatever/include/path

使用include和library路径替换/ whatever / includeorlib / path。 -L用于设置库路径,-I用于包含路径。

BASH是案例敏感。

注意:

我使用Linux,所以这可能不起作用。我认为这也适用于OSX,因为Linux和OSX是类Unix系统。