gstreamer tutorial 在linux下的編譯

這裡在講的 是有關gstreamer 在linux如何不使用`pkg-config --cflags --libs gstreamer-0.10`
以及一些所需庫的安裝

0. 下載gstreamer教程 請參考
http://docs.gstreamer.com/display/GstSDK/Tutorials 
 
說穿了就這行命令

  git clonegit://anongit.freedesktop.org/gstreamer-sdk/gst-sdk-tutorials

1. 下載 gstreamer0.1版用的, 注意是0.1版!!

若裝成gstreamer1.0版且不安裝0.1版 會在編譯時就出限一堆錯誤

   若強行求解 運行時也會出現問題
 
    所以第一重點就是要apt-get (或yum) install gstreamer0.10*

    (無腦安裝所有0.1版的插件 開發環境)

所以很自然的 在Makefile裡要加上

 INC := -I/usr/include/gstreamer-0.10
 LIB += -L/usr/lib/x86_64-linux-gnu #(這行是依ubuntu64, 其他發行版很可能需要修正)
 LIB += -lgstreamer-0.10 


2. 光加上gstreamer庫 教程編譯還是不會過的

gstreamer 大量依賴 glib庫


  還要加上


INC += -I/usr/include/glib-2.0
INC += -I/usr/include/libxml2
INC += -I/usr/lib/x86_64-linux-gnu/glib-2.0/include

(LIB就不用加上lglib-2.0 -lxml2 了 因為libgstreamer0.1自動相依於前兩個庫)
這樣就可以編譯例程一到四號了

 
3.六號到八號 有用到gtk庫的東西

   所以請 sudo apt-get installlibgtk2.0*
然後

INC += -I/usr/include/gtk-2.0
INC += -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include

LIB += -lgtk-x11-2.0


4.  九號例程有用到gstreamer plugin的東西 所以要加上

LIB += -lgstpbutils-0.10

5. 第五號最麻煩 用到 gdk-pixbuf這庫

  所以先 apt-get install libgdk-pixbuf2.0*

然後

INC += -I/usr/include/cairo
INC += -I/usr/include/pango-1.0
INC += -I/usr/include/gdk-pixbuf-2.0
INC += -I/usr/include/atk-1.0

LIB += -lgstinterfaces-0.10

這樣即可


最後附上完整的Makefile (ubuntu 64)


CC := gcc
CFLAGS := -g

INC := -I/usr/include/gstreamer-0.10
INC += -I/usr/include/glib-2.0
INC += -I/usr/include/libxml2
INC += -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
INC += -I/usr/include/gtk-2.0
INC += -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include
INC += -I/usr/include/cairo
INC += -I/usr/include/pango-1.0
INC += -I/usr/include/gdk-pixbuf-2.0
INC += -I/usr/include/atk-1.0

LIB := -L/usr/lib/x86_64-linux-gnu
LIB += 
-lgstreamer-0.10
LIB += -lgtk-x11-2.0
LIB += 
-lgstpbutils-0.10-lgstinterfaces-0.10

all:
 
      $(CC) $(CFLAGS) basic-tutorial-1.c -o basic-tutorial-1 $(INC)$(LIB)
 
      $(CC) $(CFLAGS) basic-tutorial-2.c -o basic-tutorial-2 $(INC)$(LIB)
 
      $(CC) $(CFLAGS) basic-tutorial-3.c -o basic-tutorial-3 $(INC)$(LIB)
 
      $(CC) $(CFLAGS) basic-tutorial-4.c -o basic-tutorial-4 $(INC)$(LIB)
 
      $(CC) $(CFLAGS) basic-tutorial-5.c -o basic-tutorial-5 $(INC)$(LIB)
 
      $(CC) $(CFLAGS) basic-tutorial-6.c -o basic-tutorial-6 $(INC)$(LIB)
 
      $(CC) $(CFLAGS) basic-tutorial-7.c -o basic-tutorial-7 $(INC)$(LIB)
 
      $(CC) $(CFLAGS) basic-tutorial-8.c -o basic-tutorial-8 $(INC)$(LIB)
 
      $(CC) $(CFLAGS) basic-tutorial-9.c -o basic-tutorial-9 $(INC)$(LIB)
clean:
 
      rm basic-tutorial-1 basic-tutorial-2 basic-tutorial-3basic-tutorial-4 basic-tutorial-5 basic-tutorial-6 basic-tutorial-7basic-tutorial-8 basic-tutorial-9 -rf


你可能感兴趣的:(gstreamer tutorial 在linux下的編譯)