【问题标题】:gstreamer mac os illegal operation: 4gstreamer mac os 非法操作:4
【发布时间】:2019-07-16 18:53:51
【问题描述】:

编译 Gstreamer 程序没有问题,但是当我尝试在 MacOS 上运行输出时,它显示“非法指令:4”,我不知道为什么会这样。

我尝试使用 -mmacosx-version-min=10.x 'x' 为 6,7,8,9,10,11 并将所有这些值导出为 MACOSX_DEPLOYMENT_TARGET 环境变量中的相同值。仍然运行它会给我一个“非法指令:4”的错误

gcc basic-tutorial-1.c pkg-config --cflags --libs gstreamer-1.0,也是 gcc basic-tutorial-1.c pkg-config --cflags --libs gstreamer-1.0 -mmacosx-version-min=10.6 但运行 ./a.out 会出现同样的错误。

现在它应该播放“basic-tutorial-1”中的视频,但它没有播放它,而是丢弃了这个错误“Illegal Instruction: 4”。

【问题讨论】:

    标签: macos gstreamer


    【解决方案1】:

    仅使用 MACOSX_DEPLOYMENT_TARGET 编译应用程序可能对您没有帮助。很可能是 Gstreamer 库本身已使用您的机器上不可用的指令集(SSE/AVX 等)进行编译。这是通过 macports/brew 还是官方 GStreamer .pkg?如果没有一个二进制发行版支持您的 CPU,您可能必须自己为您的系统重建 GStreamer 库。

    【讨论】:

    • 这是通过自制软件安装的。我应该使用 mmacosx-version-min 标志从网站手动重建它吗?
    • Easier 可能是尝试从 GStreamer 官方网站安装 .pkg 文件。你需要为你的编译器和链接器设置 PKG_CONFIG_PATH 来获取这些库。 (无论您安装 .pc 文件的位置)
    • 对不起,我没有关注?
    • 我构建了 gstreamer 的教程 1,它也显示非法指令:4,这是解决了吗?
    • 如答案所述。您需要一个支持您的机器的 GStreamer 二进制文件。
    【解决方案2】:

    我遇到了这个问题,结果发现使用brew 安装的库无法正常工作。对我来说,我需要从 Mac pkg 文件安装 here:

    安装这些 pkg 后,mac 不会自动为您链接这些库。因此,您需要键入以下命令来设置 ENV PKG_CONFIG_PATH 以便 pkg-config 可以找到库:

    export PKG_CONFIG_PATH=/Library/Frameworks/GStreamer.framework/Libraries/pkgconfig:$PKG_CONFIG_PATH
    

    之后您应该可以使用以下命令进行构建:

    gcc basic-tutorial-1.c -o basic-tutorial-1 `pkg-config --cflags --libs gstreamer-1.0`
    

    但是,我发现mac的basic-tutorial-1的视频显示有问题。见this

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-24
      相关资源
      最近更新 更多