星期三, 6月 28, 2006

ffmpeg - on Sarge stable - why XOpenDisplay not found ?

在真正的開發環境上install ffmpeg :
  1. 先在proxy server上run netselect-apt,找到source mirror site。
  2. 將netselect-apt 的source.list中deb src 的那一行copy到dev platform的source.list上(dev platform 是用CD ROM裝的,所以沒有src link。
    copy 完後,修改/etc/apt/apt.conf (follow以前的post)。
    記得proxy server要把dev platform加入Allow。
    run apt-get update
  3. apt-get source ffmpeg
  4. 取得20050313(跟testing果然不一樣)
  5. apt-get install libsdl1.2-dev
  6. 到ffmpeg 下run config
    檢查一下 CONFIG_SDL=yes 這樣sample program : ffplay才會build。
  7. make
    這一個版本不需要修改XOpenDisplay,
    如果需要,才run make install (root)
ffplay make出來有兩個版本 : ffplay, ffplay_g。
ffplay_g是沒有strip的版本,可以gdb 來run。

奇怪的問題: testing 的ffmpeg為甚麼不能使用XOpenDisplay ?
查XOpenDisplay是declare在 /usr/include/X11/Xlib.h ,
sourcecode中,只要有 define __linux__ 就會include X11/Xlib.h 進來。
用 這一篇 http://lists.debian.org/debian-devel/2001/01/msg00979.html 的方法,可以偵測出compiler是否有define __linux__。

沒錯,因為make error是發生在link,不是為宣告,所以X11/Xlib.h是有include。
問題是X lib 沒有link進來..

用ldd check一下stanble (OK)的ffplay,看看link到哪些X11 library..
libX11.so.6 => /usr/X11R6/lib/libX11.so.6
libXext.so.6 => /usr/X11R6/lib/libXext.so.6
這兩個。
在testing搜尋一下..嗯。位置不一樣...
stable  在 /usr/X11R6/lib 下
testing 在 /usr/lib
但是為甚麼link不到?

沒有留言:

網誌存檔