ubuntu 11.10 下安装gstreamer 的开发环境

网络上面有很多安装gstreamer的文章,但是我在此也写下,我在ubuntu下安装gstreamer的过程,以方面网友的参考。

我的安装并不是很顺利,因为我开始对gstreamer并不了解,故到网络找了很多文章,但是都没有成功,最后在网络浏览中发现了另外两篇文章,让我成功安装了gstreamer。

 1. 参考文章http://hi.baidu.com/zhupan19851230/item/fdcebb515ccacdd5d48bacb8,安装了如下的gst的插件:

gstreamer0.10-tools

gstreamer0.10-x

gstreamer0.10-plugins-base

gstreamer0.10-plugins-good

gstreamer0.10-plugins-ugly

gstreamer0.10-plugins-bad

gstreamer0.10-ffmpeg

gstreamer0.10-alsa

gstreamer0.10-schroedinger

gstreamer0.10-pulseaudio

并且参考此文章,编写了测试用例:

#include <gst/gst.h>
int main(int argc, char *argv[])
{
    const gchar *nano_str;
    guint major,minor, micro, nano;
    gst_init(&argc, &argv);
    gst_version(&major, &minor,&micro, &nano);
    if (nano == 1)
        nano_str="(CVS)";
    else if (nano==2)
       nano_str="(Prerelease)";
    else
      nano_str="";
     printf("This program is linked against GStreamer %d.%d.%d %s\n", major, minor, micro, nano_str);
 return 0;
}

采用介绍的方法,进行编译,但是提示不能找到gst/gst.h,在网络查找,大多都说没有配置环境变量,我按着相应的说法配置了,还算不起作用。

 在不断的搜索中,终于看见一篇文章说需要安装头文件,故使用命令如下命令安装头文件:

apt-get install libgstreamer*

安装头文件后,使用如下命令进行编译:

gcc -Wall $(pkg-config --cflags --libs gstreamer-0.10)testgstream.cpp -o testgstream

又报如下的错误:

/tmp/ccrXw6CU.o: In function `main':
testgstream.cpp:(.text+0x18): undefined reference to `gst_init'
testgstream.cpp:(.text+0x3c): undefined reference to `gst_version'
collect2: ld returned 1 exit status

继续搜索,结果发现有人说,应该按照如下的方式,进行编译:

gcc -Wall testgstream.cpp -o testgstream $(pkg-config --cflags --libs gstreamer-0.10)

安装这种方式,就编译过了。

我在网络查询了gcc参数顺序相关的问题,找到了如下的一段解释,按照这个解释就能很好的解释上面的问题了

对于C/C++编译而言,读取编译选项是按照从左到右的顺序执行的(注1) 。那么当编译器遇到源文件的时候,就开始对源文件中用到的函数进行解析,找到相对应的函数的函数体或者说是实现(Definition of Function)。这个过程是按照先遇到不能解析的函数(unresolved function),然后在源文件选项后面的一些选项中寻找可能的函数体的信息,是这样的一个顺序进行的。那么我们可以发现对于Makefile A,由于包含函数体或者函数定义信息的编译选项出现在源文件之前,那么当编译器在源文件中遇到不能解析的函数时,在源文件之后的选项中寻找相关的信息,那 么就出现了编译错误,也就是无法找到相关的函数定义。


你可能感兴趣的:(Ubuntu11.10,gstreamer开发环境)