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