【问题标题】:Vala + Gtk doesn't work in mac os xVala + Gtk 在 mac os x 中不起作用
【发布时间】:2023-03-14 04:35:01
【问题描述】:

我通过自制软件安装了 Vala,并在 osx 10.9.3 中编译了一个普通的 hello world 应用程序。这是错误消息报告:

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libgtk-3.dylib,文件是为 i386 构建的,它不是被链接的架构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libgtk-3.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libgio-2.0.dylib,文件是为 i386 构建的,它不是被链接的架构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libgio-2.0.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libatk-1.0.dylib,文件是为 i386 构建的,它不是被链接的架构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libatk-1.0.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libgdk-3.dylib,文件是为 i386 构建的,它不是所链接的体系结构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libgdk-3.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libgdk_pixbuf-2.0.dylib,文件是为 i386 构建的,它不是被链接的架构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libgdk_pixbuf-2.0.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libcairo-gobject.dylib,文件是为 i386 构建的,它不是所链接的体系结构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libcairo-gobject.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libpangocairo-1.0.dylib,文件是为 i386 构建的,它不是被链接的架构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libpangocairo-1.0.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libcairo.dylib,文件是为 i386 构建的,它不是被链接的架构 (x86_64):/Library/Frameworks/Gtk3.framework/lib /libcairo.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libpangoft2-1.0.dylib,文件是为 i386 构建的,它不是被链接的架构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libpangoft2-1.0.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libpango-1.0.dylib,文件是为 i386 构建的,它不是被链接的架构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libpango-1.0.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libgobject-2.0.dylib,文件是为 i386 构建的,它不是被链接的体系结构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libgobject-2.0.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libglib-2.0.dylib,文件是为 i386 构建的,它不是被链接的体系结构 (x86_64):/Library/Frameworks/Gtk3.framework /lib/libglib-2.0.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libintl.dylib,文件是为 i386 构建的,它不是所链接的体系结构 (x86_64):/Library/Frameworks/Gtk3.framework/lib /libintl.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libfreetype.dylib,文件是为 i386 构建的,它不是所链接的体系结构 (x86_64):/Library/Frameworks/Gtk3.framework/lib /libfreetype.dylib

ld:警告:忽略文件 /Library/Frameworks/Gtk3.framework/lib/libfontconfig.dylib,文件是为 i386 构建的,它不是被链接的架构 (x86_64):/Library/Frameworks/Gtk3.framework/lib /libfontconfig.dylib

架构 x86_64 的未定义符号: “_g_atomic_int_dec_and_test”,引用自: helloworld-0067aa.o 中的 _block1_data_unref “_g_atomic_int_inc”,引用自: helloworld-0067aa.o 中的 _block1_data_ref “_g_object_ref_sink”,引用自: __vala_main 在 helloworld-0067aa.o “_g_object_unref”,引用自: __vala_main 在 helloworld-0067aa.o helloworld-0067aa.o 中的 _block1_data_unref “_g_signal_connect_data”,引用自: __vala_main 在 helloworld-0067aa.o “_g_slice_alloc0”,引用自: __vala_main 在 helloworld-0067aa.o “_g_slice_free1”,引用自: helloworld-0067aa.o 中的 _block1_data_unref “_g_type_init”,引用自: _main 在 helloworld-0067aa.o “_gtk_button_new_with_label”,引用自: __vala_main 在 helloworld-0067aa.o “_gtk_button_set_label”,引用自: ___lambda3_ 在 helloworld-0067aa.o “_gtk_container_add”,引用自: __vala_main 在 helloworld-0067aa.o “_gtk_container_set_border_width”,引用自: __vala_main 在 helloworld-0067aa.o “_gtk_init”,引用自: __vala_main 在 helloworld-0067aa.o “_gtk_main”,引用自: __vala_main 在 helloworld-0067aa.o “_gtk_main_quit”,引用自: __gtk_main_quit_gtk_widget_destroy 在 helloworld-0067aa.o “_gtk_widget_set_sensitive”,引用自: ___lambda3_ 在 helloworld-0067aa.o “_gtk_widget_show_all”,引用自: __vala_main 在 helloworld-0067aa.o “_gtk_window_new”,引用自: __vala_main 在 helloworld-0067aa.o “_gtk_window_set_default_size”,引用自: __vala_main 在 helloworld-0067aa.o “_gtk_window_set_position”,引用自: __vala_main 在 helloworld-0067aa.o “_gtk_window_set_title”,引用自: __vala_main 在 helloworld-0067aa.o ld:未找到架构 x86_64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) 错误:cc 以状态 256 退出 编译失败:1 个错误,0 个警告 [在 2.6 秒内完成,退出代码为 1] [shell_cmd: valac --pkg gtk+-3.0 /Users/romanfischer/Documents/Vala/gstreamer/src/helloworld.vala -o app.vala && ./app.vala] [目录:/Users/romanfischer/Documents/Vala/gstreamer/src] [路径:/bin:/sbin:/usr/bin:/usr/sbin:/usr/libexec:/Library/Frameworks/Gtk3.framework/bin:/Library/Frameworks/Vala.framework/bin]

如何让 Gtk 框架工作? 非常感谢任何帮助。

【问题讨论】:

    标签: macos compilation gtk vala


    【解决方案1】:

    您下载的 Gtk+ 库是为 32 位处理器编译的,但您正在尝试为 64 位编译。你可以:

    1. 传递 -X -m32 以构建 32 位二进制文​​件。
    2. 获取 Gtk+ 的 64 位二进制文​​件。这可能是更好的选择。

    【讨论】:

    • 对我不起作用。做 1. 以 'unknon target CPU 'i386' 结束
    • 我什至不知道在哪里可以找到-X 的可用选项参数。关于选项 2:不知道在哪里可以找到 64 位 Gtk+ for vala for mac 或如何在 vapi 中替换它
    • 对不起,应该是-m32。已更正。我不确定你从哪里得到这些二进制文件,因为没有适用于 OS X 的官方 Gtk+ 二进制文件。你不需要替换 VAPI。 VAPI 是源代码级别的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多