无法在 C++ 程序中包含 gstreamer
Unable to include gstreamer in C++ program
前言:虽然我对 C# 很熟悉并且习惯于查看 C 和 C++ 代码来工作,但我在开发游戏引擎之外的软件方面经验很少。这可能是一个非常基本的问题,但我不知道要搜索什么来解决它。
我正在 Visual Studio 2019 年 Windows 10 上开发一个 C++ 程序。我想在此程序中使用 64 位 gstreamer。我完全遵循 official installation instructions (包括将文件夹添加到 PATH)。但是,我无法构建示例。
起初,我只是遇到无法加载多个源文件的错误。我能够通过手动添加几个路径来解决这个问题 Additional Include Directories:Image of additional include folders required to resolve issue
现在我收到以下类型的错误:
Unresolved external symbol __imp_gst_init referenced in function main
其中gst_init是示例中调用的真实函数。这似乎与尝试 link 到动态库有关,而您实际上是 linking 到静态库(在这种情况下,因为我直接 linked 到 . h 文件,我想我正在 linking 到一个静态库)。但是,我不明白where/how我指出这些函数应该在静态库中找到。
我有两个问题:
- 为什么我必须手动添加这些包含文件夹?我有什么奇怪的设置吗?
- 我对库 linking 做错了什么?
谢谢!
Unresolved external symbol __imp_gst_init referenced in function main
这意味着您没有将 GStreamer .dll 的存根 .lib link编辑到您的应用程序中。据我所知,GStreamer 默认情况下不提供静态库,您必须将其用作 Windows 上的 .dll 集。
因此,要解决您的问题,您需要 GStreamer 为您的应用程序提供的 link.lib 文件。根据 https://gstreamer.freedesktop.org/documentation/installing/on-windows.html?gi-language=c,您可以直接 link 或使用 属性 页面来简化此任务。
前言:虽然我对 C# 很熟悉并且习惯于查看 C 和 C++ 代码来工作,但我在开发游戏引擎之外的软件方面经验很少。这可能是一个非常基本的问题,但我不知道要搜索什么来解决它。
我正在 Visual Studio 2019 年 Windows 10 上开发一个 C++ 程序。我想在此程序中使用 64 位 gstreamer。我完全遵循 official installation instructions (包括将文件夹添加到 PATH)。但是,我无法构建示例。
起初,我只是遇到无法加载多个源文件的错误。我能够通过手动添加几个路径来解决这个问题 Additional Include Directories:Image of additional include folders required to resolve issue
现在我收到以下类型的错误:
Unresolved external symbol __imp_gst_init referenced in function main
其中gst_init是示例中调用的真实函数。这似乎与尝试 link 到动态库有关,而您实际上是 linking 到静态库(在这种情况下,因为我直接 linked 到 . h 文件,我想我正在 linking 到一个静态库)。但是,我不明白where/how我指出这些函数应该在静态库中找到。
我有两个问题:
- 为什么我必须手动添加这些包含文件夹?我有什么奇怪的设置吗?
- 我对库 linking 做错了什么?
谢谢!
Unresolved external symbol __imp_gst_init referenced in function main
这意味着您没有将 GStreamer .dll 的存根 .lib link编辑到您的应用程序中。据我所知,GStreamer 默认情况下不提供静态库,您必须将其用作 Windows 上的 .dll 集。 因此,要解决您的问题,您需要 GStreamer 为您的应用程序提供的 link.lib 文件。根据 https://gstreamer.freedesktop.org/documentation/installing/on-windows.html?gi-language=c,您可以直接 link 或使用 属性 页面来简化此任务。