在Mac OS X上安装
支持平台
- 10.6 (Snow Leopard)
- 10.7 (Lion)
- 10.8 (Mountain Lion)
- 10.9 (Mavericks)
- 10.10 (Yosemite)
- 10.11 (El Capitan)
先决条件
要使用GStreamer SDK for OS X开发应用程序,您需要 OS X雪豹(10.6)或更高版本以及 XCode3.2.6或 后来。
推荐的系统是macOS Sierra,带有 XCode 8
下载并安装SDK
SDK中有3组文件:
- 运行GStreamer应用程序需要运行时文件。您可能希望将这些文件与您的应用程序(或下面的安装程序)一起分发。
- 开发文件是创建GStreamer应用程序所需的附加文件。
- 您可以使用的Mac OS X软件包 与PackageMaker 使用您的应用程序部署GStreamer
获取运行时和开发安装程序 从 在GStreamer下载页面 并请同时安装它们:
- 运行时安装程序是例如
gstreamer-1.0-{VERSION}-x86_64.pkg
,以及 - 开发安装程序是例如
gstreamer-1.0-devel-{VERSION}-x86_64.pkg
在苹果OS X 10.6(雪豹)上,你必须手动安装Python 2.7。它已经包含在OS X的更高版本中。你可以从这里得到它。
下载是 安装程序包(. pkg)。
双击软件包文件,并按照安装向导提供的说明进行操作。如果系统抱怨软件包没有签名,您可以控制-单击它并打开以开始安装。当您这样做时,它会警告您,但无论如何都有一个安装选项。否则,您可以转到系统偏好设置→安全和隐私→常规并选择允许从"任何地方"安装软件包的选项。
这些是您可能会发现有用的GStreamer框架的一些路径:
- /Library/Frameworks/GStreamer.framework/:框架的根路径
- /Library/Frameworks/GStreamer.framework/Versions:包含框架所有版本的路径
- /Library/Frameworks/GStreamer.framework/Versions/Current:链接到框架的当前版本
- /Library/Frameworks/GStreamer.framework/Headers:带有开发头的路径
- /Library/Frameworks/GStreamer.framework/Commands:链接到框架提供的命令,如gst-😍y-1.0或gst-Launing-1.0
有关OS X框架解剖的更多信息,您可以查阅 以下链接
配置您的开发环境
构建教程
教程代码,以及项目文件和解决方案文件 他们都在 GST-docs在 examples/tutorials
子目录。
要开始构建教程,请在Documents中创建一个新文件夹 目录并复制 文件夹/Library/Frameworks/GStreamer.framework/Current/share/gst-sdk/tutorials
。
您可以启动XCode并加载项目文件。
按运行按钮构建并运行第一个教程。您可以切换教程以选择可用方案之一进行构建。
创建新项目
XCode的
GStreamer二进制文件提供了一个 框架 您可以拖放到XCode开始使用它。有一个小 常规使用框架的例外,您需要手动 包括标题(/Library/Frameworks/GStreamer.framework/Headers
)和 库(/Library/Frameworks/GStreamer.framework/Libraries
)搜索路径。在 XCode您需要执行以下操作:
- 将
GStreamer.framework
添加到常规→框架和库 - 将库路径添加到构建设置→库搜索路径
- 将标头路径添加到构建设置→系统标头搜索路径
- 禁用强化运行时生成设置→启用强化运行时 。这 是必需的,因为
GStreamer.framework
没有签名。
手工编译
如果您直接使用GCC(或CLANG)而不是XCode,您可以遵循类似的方法,为编译器和链接器提供标头和库搜索路径。这是一个非常简单的示例来向您展示如何:
假设我们有一个需要GStreamer的文件main.c
,如下所示:
#include <gst/gst.h>
int
main(int argc, char *argv[])
{
gst_init(NULL, NULL);
return 0;
}
我们可以编译它并将其与以下命令链接:
# Compile
$ clang -c main.c -o main.o -I/Library/Frameworks/GStreamer.framework/Headers
# Link
$ clang -o main main.o -L/Library/Frameworks/GStreamer.framework/Libraries -F/Library/Frameworks -framework GStreamer
注意我们如何使用-I/Library/Frameworks/GStreamer.framework/Headers
来指定 标头搜索路径(与XCode相同),在链接步骤中我们指定 -L/Library/Frameworks/GStreamer.framework/Libraries
来表示库 搜索路径(就像我们在XCode中做的那样),-F/Library/Frameworks
告诉 链接器在哪里可以找到框架,最后是-framework GStreamer
来指定 GStreamer框架。
最后,我们甚至可以检查生成的可执行文件并验证它是否指向我们的GStreamer框架:
$ otool -L main
main:
@rpath/GStreamer.framework/Versions/1.0/lib/GStreamer (compatibility version 0.0.0, current version 0.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.100.3)
手动编译(使用pkg-config)
GStreamerGStreamer.framework
还附带了一些开发工具,例如 pkg-config
.pkg-config
是一个用来查询什么编译器和链接器的工具 标记应用程序是否需要使用某个库。所以我们会 现在用pkg-config
构建相同的示例,并要求 必需的GStreamer标志。
# Tell pkg-config where to find the .pc files
$ export PKG_CONFIG_PATH=/Library/Frameworks/GStreamer.framework/Versions/1.0/lib/pkgconfig
# We will use the pkg-config provided by the GStreamer.framework
$ export PATH=/Library/Frameworks/GStreamer.framework/Versions/1.0/bin:$PATH
# Compile
$ clang -c main.c -o main.o `pkg-config --cflags gstreamer-1.0`
# Link
$ clang -o main main.o `pkg-config --libs gstreamer-1.0`
使用GStreamer. Framework提供pkg-config
非常GStreamer.framework
(不是Homebrew提供的那个),这就是为什么我们设置PATH
来查找 pkg-config
从正确的位置。
请注意,我们如何使用pkg-config --cflags gstreamer-1.0
来获取所有 编译标志,然后pkg-config --libs gstreamer-1.0
获取所有 链接器标志。
上面的命令应该生成了一个可执行文件,和以前一样,我们可以检查:
$ otool -L main
main:
@rpath/libgstreamer-1.0.0.dylib (compatibility version 2101.0.0, current version 2101.0.0)
@rpath/libgobject-2.0.0.dylib (compatibility version 6201.0.0, current version 6201.6.0)
@rpath/libglib-2.0.0.dylib (compatibility version 6201.0.0, current version 6201.6.0)
@rpath/libintl.8.dylib (compatibility version 10.0.0, current version 10.5.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1311.100.3)
您可以看到依赖关系与我们上面看到的有什么不同。原因是在这种情况下,我们直接链接到框架中包含的GStreamer库,而不是框架本身(这里有一点不同)。