-2

如何让 gtkmm4 在配备 Apple M1 处理器的 macOS Monterey MacBook 上运行?

当我尝试使用 GTK 窗口编译和链接一个非常简单的 C++ 应用程序时出现这些错误(基本示例取自 GTK 文档):

% g++-11 hellogtk.cpp -o hellogtk `pkg-config --cflags --libs gtkmm-4.0` 
Undefined symbols for architecture arm64:
  "__ZN3Gtk15ShortcutManager20add_controller_vfuncERKSt10shared_ptrINS_18ShortcutControllerEE", referenced from:
      __ZTV8MyWindow in ccHxwun1.o
      __ZTC8MyWindow0_N3Gtk6WindowE in ccHxwun1.o
      __ZTC8MyWindow48_N3Gtk15ShortcutManagerE in ccHxwun1.o
  "__ZN3Gtk15ShortcutManager23remove_controller_vfuncERKSt10shared_ptrINS_18ShortcutControllerEE", referenced from:
      __ZTV8MyWindow in ccHxwun1.o
      __ZTC8MyWindow0_N3Gtk6WindowE in ccHxwun1.o
      __ZTC8MyWindow48_N3Gtk15ShortcutManagerE in ccHxwun1.o
  "__ZN3Gtk6Widget14snapshot_vfuncERKSt10shared_ptrINS_8SnapshotEE", referenced from:
      __ZTV8MyWindow in ccHxwun1.o
      __ZTC8MyWindow0_N3Gtk6WindowE in ccHxwun1.o
      __ZTC8MyWindow0_N3Gtk6WidgetE in ccHxwun1.o
  "__ZN3Gtk6Widget16on_query_tooltipEiibRKSt10shared_ptrINS_7TooltipEE", referenced from:
      __ZTV8MyWindow in ccHxwun1.o
      __ZTC8MyWindow0_N3Gtk6WindowE in ccHxwun1.o
      __ZTC8MyWindow0_N3Gtk6WidgetE in ccHxwun1.o
ld: symbol(s) not found for architecture arm64
collect2: error: ld returned 1 exit status

这是我运行 pkg-config --cflags --libs gtkmm-4.0 时的输出:

% pkg-config --cflags --libs gtkmm-4.0 
-I/opt/homebrew/Cellar/libffi/3.4.2/include -I/opt/homebrew/Cellar/gtkmm4/4.2.0/include/gtkmm-4.0 -I/opt/homebrew/Cellar/gtkmm4/4.2.0/lib/gtkmm-4.0/include -I/opt/homebrew/Cellar/pangomm/2.50.0/include/pangomm-2.48 -I/opt/homebrew/Cellar/pangomm/2.50.0/lib/pangomm-2.48/include -I/opt/homebrew/Cellar/glibmm/2.70.0/include/giomm-2.68 -I/opt/homebrew/Cellar/glibmm/2.70.0/lib/giomm-2.68/include -I/opt/homebrew/Cellar/glibmm/2.70.0/include/glibmm-2.68 -I/opt/homebrew/Cellar/glibmm/2.70.0/lib/glibmm-2.68/include -I/opt/homebrew/Cellar/cairomm/1.16.1/include/cairomm-1.16 -I/opt/homebrew/Cellar/cairomm/1.16.1/lib/cairomm-1.16/include -I/opt/homebrew/Cellar/libsigc++/3.0.7/include/sigc++-3.0 -I/opt/homebrew/Cellar/libsigc++/3.0.7/lib/sigc++-3.0/include -I/opt/homebrew/Cellar/gtk4/4.6.0/include/gtk-4.0/unix-print -I/opt/homebrew/Cellar/gtk4/4.6.0/include/gtk-4.0 -I/opt/homebrew/Cellar/glib/2.70.3/include/gio-unix-2.0 -I/opt/homebrew/Cellar/libepoxy/1.5.9/include -I/opt/homebrew/Cellar/cairo/1.16.0_5/include/cairo -I/opt/homebrew/Cellar/pango/1.50.3/include/pango-1.0 -I/opt/homebrew/Cellar/harfbuzz/3.3.1/include/harfbuzz -I/opt/homebrew/Cellar/pango/1.50.3/include/pango-1.0 -I/opt/homebrew/Cellar/fribidi/1.0.11/include/fribidi -I/opt/homebrew/Cellar/harfbuzz/3.3.1/include/harfbuzz -I/opt/homebrew/Cellar/graphite2/1.3.14/include -I/opt/homebrew/Cellar/gdk-pixbuf/2.42.6/include/gdk-pixbuf-2.0 -I/opt/homebrew/Cellar/libpng/1.6.37/include/libpng16 -I/opt/homebrew/Cellar/libtiff/4.3.0/include -I/opt/homebrew/Cellar/cairo/1.16.0_5/include/cairo -I/opt/homebrew/Cellar/pixman/0.40.0/include/pixman-1 -I/opt/homebrew/Cellar/fontconfig/2.13.1/include -I/opt/homebrew/opt/freetype/include/freetype2 -I/opt/homebrew/Cellar/libpng/1.6.37/include/libpng16 -I/opt/homebrew/Cellar/libxcb/1.14_1/include -I/opt/homebrew/Cellar/libxrender/0.9.10/include -I/opt/homebrew/Cellar/libxext/1.3.4/include -I/opt/homebrew/Cellar/libx11/1.7.3.1/include -I/opt/homebrew/Cellar/libxcb/1.14_1/include -I/opt/homebrew/Cellar/libxau/1.0.9/include -I/opt/homebrew/Cellar/libxdmcp/1.1.3/include -I/opt/homebrew/Cellar/graphene/1.10.6/include/graphene-1.0 -I/opt/homebrew/Cellar/graphene/1.10.6/lib/graphene-1.0/include -I/opt/homebrew/Cellar/glib/2.70.3/include -I/opt/homebrew/Cellar/glib/2.70.3/include/glib-2.0 -I/opt/homebrew/Cellar/glib/2.70.3/lib/glib-2.0/include -I/opt/homebrew/opt/gettext/include -I/opt/homebrew/Cellar/pcre/8.45/include -I/opt/homebrew/Cellar/xorgproto/2021.5/include -L/opt/homebrew/Cellar/gtkmm4/4.2.0/lib -L/opt/homebrew/Cellar/pangomm/2.50.0/lib -L/opt/homebrew/Cellar/glibmm/2.70.0/lib -L/opt/homebrew/Cellar/cairomm/1.16.1/lib -L/opt/homebrew/Cellar/libsigc++/3.0.7/lib -L/opt/homebrew/Cellar/gtk4/4.6.0/lib -L/opt/homebrew/Cellar/pango/1.50.3/lib -L/opt/homebrew/Cellar/harfbuzz/3.3.1/lib -L/opt/homebrew/Cellar/gdk-pixbuf/2.42.6/lib -L/opt/homebrew/Cellar/cairo/1.16.0_5/lib -L/opt/homebrew/Cellar/graphene/1.10.6/lib -L/opt/homebrew/Cellar/glib/2.70.3/lib -L/opt/homebrew/opt/gettext/lib -lgtkmm-4.0 -lpangomm-2.48 -lgiomm-2.68 -lglibmm-2.68 -lcairomm-1.16 -lsigc-3.0 -lgtk-4 -lpangocairo-1.0 -lpango-1.0 -lharfbuzz -lgdk_pixbuf-2.0 -lcairo-gobject -lcairo -lgraphene-1.0 -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl

谢谢你的帮助。我想编译、链接和运行 gtkmm4 官方文档中的基本示例,这是一个基本 GTK 窗口中的 Hello World 应用程序。

链接到示例和源代码

4

0 回答 0