gstreamer mac os非法操作:4

时间:2019-07-16 18:53:51

标签: macos gstreamer

编译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”。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

安装这些 pkgs 后,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`

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