最近几天我开始研究GStreamer1.0,最初的例子运行良好,但现在我需要GST_OBJECT(obj)
。
当我尝试使用它编译示例时,编译器outputs undefined reference to symbol 'g_type_check_instance_cast'
。我使用Eclipse Luna进行编译。我的操作系统是Ubuntu 14.04,作为编译器,我使用GCC。在Eclipse中,我添加了/usr/lib/x86_64-linux-gnu/glib-2.0/include
/usr/include/gstreamer-1.0
/usr/include/glib-2.0
到C编译器的包含路径,以及glib-2.0
gstnet-1.0
gstbase-1.0
gstcheck-1.0
gstreamer-1.0
gstcontroller-1.0
到gcc C链接库。我是新添加外部库到C++,所以我不知道当编译器失败。
我使用的简短代码片段:
x1米11米1x#include <gst/gst.h>
using namespace std;
int main(int argc, char **argv) {
地理要素 * 我的第一个要素;
gst_init(&argc, &argv);
myFirstElement = gst_element_factory_make("fakesrc", "source");
if(!myFirstElement)
return -1;
gst_object_unref(GST_OBJECT(myFirstElement));
return 0;
}`
3条答案
按热度按时间twh00eeo1#
如果我编译
使用
一切正常。可能是您的设置有问题...
7lrncoxx2#
您的问题可能是库的链接顺序。链接库时,顺序实际上很重要。例如,如果libA需要libB中的符号,则需要按-lA -lB的顺序链接。如果颠倒顺序,则链接将失败。
我的猜测是,如果在gstreamer之前链接glib,那么它将失败,因为gstreamer依赖于glib的符号。
raogr8fs3#
g_type_check_instance_cast包含在库gobject-2.0中。因此,请确保该库已链接。
希望能帮上忙