本文描述的是在Ubuntu 9.10 X64编译 Fenghaitao 带硬件加速版本的Xephyr的过程。
首先为什么会选择Ubuntu9.10,因为该版本Xephyr是基于1.6.4版本修改出来的,而1.6.4版本的Xephyr有对应的Ubuntu9.10版本,考虑到依赖库的问题,就选择了Ubuntu9.10。
关于Xephyr,请上wiki百科了解,http://en.wikipedia.org/wiki/Xephyr
源码下载地址,http://gitorious.org/xephyr-with-gl-acceleration/xephyr-with-gl-acceleration
好,编译过程开始:
./autogen.sh: 9: autoreconf: not found
sudo apt-get install autoconf
configure.ac:58: error: possibly undefined macro: AC_LIBTOOL_WIN32_DLL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:59: error: possibly undefined macro: AC_DISABLE_STATIC
configure.ac:60: error: possibly undefined macro: AC_PROG_LIBTOOL
sudo apt-get install libtool
No package 'x11' found
sudo apt-get install libx11-dev
No package 'glproto' found
sudo apt-get install x11proto-gl-dev
No package 'gl' found
sudo apt-get install libgl1-mesa-dev
Package 'xext', required by 'gl', not found
sudo apt-get install x11proto-xext-dev
sudo apt-get install libxext-dev
No package 'xf86driproto' found
sudo apt-get install x11proto-xf86dri-dev
No package 'libdrm' found
sudo apt-get install libdrm-dev
No package 'randrproto' found
No package 'renderproto' found
No package 'fixesproto' found
No package 'damageproto' found
No package 'xcmiscproto' found
No package 'bigreqsproto' found
No package 'resourceproto' found
No package 'fontsproto' found
No package 'videoproto' found
No package 'compositeproto' found
No package 'scrnsaverproto' found
No package 'resourceproto' found
No package 'xineramaproto' found
No package 'xkbfile' found
No package 'xfont' found
No package 'fontenc' found
No package 'pixman-1' found
No package 'openssl' found
sudo apt-get install x11proto-randr-dev
sudo apt-get install x11proto-render-dev
sudo apt-get install x11proto-fixes-dev
sudo apt-get install x11proto-damage-dev
sudo apt-get install x11proto-xcmisc-dev
sudo apt-get install x11proto-bigreqs-dev
sudo apt-get install x11proto-resource-dev
sudo apt-get install x11proto-fonts-dev
sudo apt-get install x11proto-video-dev
sudo apt-get install x11proto-composite-dev
sudo apt-get install x11proto-scrnsaver-dev
sudo apt-get install x11proto-xinerama-dev
sudo apt-get install libxkbfile-dev
sudo apt-get install libxfont-dev
sudo apt-get install libpixman-1-dev
sudo apt-get install libcurl4-openssl-dev
No package 'pciaccess' found
sudo apt-get install libpciaccess-dev
sudo apt-get install x11proto-dri2-dev
hostx.c:60:39: error: X11/extensions/Xcomposite.h: No such file or directory
hostx.c: In function ‘hostx_calculate_color_shift’:
hostx.c:587: warning: suggest parentheses around assignment used as truth value
hostx.c: At top level:
hostx.c:1180: warning: no previous prototype for ‘hostx_copy_region’
hostx.c: In function ‘hostx_copy_region’:
hostx.c:1196: warning: implicit declaration of function ‘ephyrPaintPairedLocalWindow’
hostx.c:1196: warning: nested extern declaration of ‘ephyrPaintPairedLocalWindow’
hostx.c: In function ‘hostx_create_window’:
hostx.c:1252: warning: implicit declaration of function ‘XCompositeRedirectWindow’
hostx.c:1252: warning: nested extern declaration of ‘XCompositeRedirectWindow’
hostx.c:1252: error: ‘CompositeRedirectManual’ undeclared (first use in this function)
hostx.c:1252: error: (Each undeclared identifier is reported only once
hostx.c:1252: error: for each function it appears in.)
hostx.c: In function ‘hostx_has_dri2’:
hostx.c:1491: warning: implicit declaration of function ‘DRI2QueryExtension’
hostx.c:1491: warning: nested extern declaration of ‘DRI2QueryExtension’
sudo apt-get install libxcomposite-dev
ephyrhostvideo.c:43:34: error: X11/extensions/Xvlib.h: No such file or directory
ephyrhostvideo.c:63: error: ‘XvName’ undeclared here (not in a function)
ephyrhostvideo.c: In function ‘xv_find_display’:
ephyrhostvideo.c:108: error: ‘XvNumEvents’ undeclared (first use in this function)
ephyrhostvideo.c:108: error: (Each undeclared identifier is reported only once
ephyrhostvideo.c:108: error: for each function it appears in.)
ephyrhostvideo.c: In function ‘xv_error_string’:
ephyrhostvideo.c:113: error: ‘XvNumErrors’ undeclared (first use in this function)
ephyrhostvideo.c: At top level:
ephyrhostvideo.c:117: error: expected specifier-qualifier-list before ‘XvAdaptorInfo’
ephyrhostvideo.c: In function ‘ephyrHostXVQueryAdaptors’:
ephyrhostvideo.c:269: warning: implicit declaration of function ‘XvQueryAdaptors’
ephyrhostvideo.c:269: warning: nested extern declaration of ‘XvQueryAdaptors’
ephyrhostvideo.c:271: error: ‘EphyrHostXVAdaptorArray’ has no member named ‘nb_adaptors’
ephyrhostvideo.c:272: error: ‘EphyrHostXVAdaptorArray’ has no member named ‘adaptors’
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorArrayDelete’:
ephyrhostvideo.c:290: error: ‘EphyrHostXVAdaptorArray’ has no member named ‘adaptors’
ephyrhostvideo.c:291: warning: implicit declaration of function ‘XvFreeAdaptorInfo’
ephyrhostvideo.c:291: warning: nested extern declaration of ‘XvFreeAdaptorInfo’
ephyrhostvideo.c:291: error: ‘EphyrHostXVAdaptorArray’ has no member named ‘adaptors’
ephyrhostvideo.c:292: error: ‘EphyrHostXVAdaptorArray’ has no member named ‘adaptors’
ephyrhostvideo.c:293: error: ‘EphyrHostXVAdaptorArray’ has no member named ‘nb_adaptors’
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorArrayGetSize’:
ephyrhostvideo.c:302: error: ‘EphyrHostXVAdaptorArray’ has no member named ‘nb_adaptors’
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorArrayAt’:
ephyrhostvideo.c:311: error: ‘EphyrHostXVAdaptorArray’ has no member named ‘nb_adaptors’
ephyrhostvideo.c:313: error: ‘EphyrHostXVAdaptorArray’ has no member named ‘adaptors’
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorGetType’:
ephyrhostvideo.c:320: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:320: error: expected expression before ‘)’ token
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorGetName’:
ephyrhostvideo.c:328: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:328: error: expected expression before ‘)’ token
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorGetVideoFormats’:
ephyrhostvideo.c:342: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:342: error: expected expression before ‘)’ token
ephyrhostvideo.c:347: error: expected expression before ‘)’ token
ephyrhostvideo.c:352: error: expected expression before ‘)’ token
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorGetNbPorts’:
ephyrhostvideo.c:366: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:366: error: expected expression before ‘)’ token
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorGetFirstPortID’:
ephyrhostvideo.c:374: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:374: error: expected expression before ‘)’ token
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorHasPutVideo’:
ephyrhostvideo.c:383: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:383: error: expected expression before ‘)’ token
ephyrhostvideo.c:383: error: ‘XvVideoMask’ undeclared (first use in this function)
ephyrhostvideo.c:383: error: ‘XvInputMask’ undeclared (first use in this function)
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorHasGetVideo’:
ephyrhostvideo.c:394: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:394: error: expected expression before ‘)’ token
ephyrhostvideo.c:394: error: ‘XvVideoMask’ undeclared (first use in this function)
ephyrhostvideo.c:394: error: ‘XvOutputMask’ undeclared (first use in this function)
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorHasPutStill’:
ephyrhostvideo.c:407: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:407: error: expected expression before ‘)’ token
ephyrhostvideo.c:407: error: ‘XvStillMask’ undeclared (first use in this function)
ephyrhostvideo.c:407: error: ‘XvInputMask’ undeclared (first use in this function)
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorHasGetStill’:
ephyrhostvideo.c:420: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:420: error: expected expression before ‘)’ token
ephyrhostvideo.c:420: error: ‘XvStillMask’ undeclared (first use in this function)
ephyrhostvideo.c:420: error: ‘XvOutputMask’ undeclared (first use in this function)
ephyrhostvideo.c: In function ‘ephyrHostXVAdaptorHasPutImage’:
ephyrhostvideo.c:433: error: ‘XvAdaptorInfo’ undeclared (first use in this function)
ephyrhostvideo.c:433: error: expected expression before ‘)’ token
ephyrhostvideo.c:433: error: ‘XvImageMask’ undeclared (first use in this function)
ephyrhostvideo.c:433: error: ‘XvInputMask’ undeclared (first use in this function)
ephyrhostvideo.c: In function ‘ephyrHostXVQueryEncodings’:
ephyrhostvideo.c:446: error: ‘XvEncodingInfo’ undeclared (first use in this function)
ephyrhostvideo.c:446: error: ‘encoding_info’ undeclared (first use in this function)
ephyrhostvideo.c:452: warning: implicit declaration of function ‘XvQueryEncodings’
ephyrhostvideo.c:452: warning: nested extern declaration of ‘XvQueryEncodings’
ephyrhostvideo.c:468: warning: implicit declaration of function ‘XvFreeEncodingInfo’
ephyrhostvideo.c:468: warning: nested extern declaration of ‘XvFreeEncodingInfo’
ephyrhostvideo.c: In function ‘ephyrHostXVQueryPortAttributes’:
ephyrhostvideo.c:512: warning: implicit declaration of function ‘XvQueryPortAttributes’
ephyrhostvideo.c:512: warning: nested extern declaration of ‘XvQueryPortAttributes’
ephyrhostvideo.c:514: warning: cast to pointer from integer of different size
ephyrhostvideo.c: In function ‘ephyrHostXVQueryImageFormats’:
ephyrhostvideo.c:524: error: ‘XvImageFormatValues’ undeclared (first use in this function)
ephyrhostvideo.c:524: error: ‘result’ undeclared (first use in this function)
ephyrhostvideo.c:528: warning: implicit declaration of function ‘XvListImageFormats’
ephyrhostvideo.c:528: warning: nested extern declaration of ‘XvListImageFormats’
ephyrhostvideo.c: In function ‘ephyrHostXVSetPortAttribute’:
ephyrhostvideo.c:548: warning: implicit declaration of function ‘XvSetPortAttribute’
ephyrhostvideo.c:548: warning: nested extern declaration of ‘XvSetPortAttribute’
ephyrhostvideo.c: In function ‘ephyrHostXVGetPortAttribute’:
ephyrhostvideo.c:575: warning: implicit declaration of function ‘XvGetPortAttribute’
ephyrhostvideo.c:575: warning: nested extern declaration of ‘XvGetPortAttribute’
ephyrhostvideo.c: In function ‘ephyrHostXVQueryBestSize’:
ephyrhostvideo.c:611: warning: implicit declaration of function ‘XvQueryBestSize’
ephyrhostvideo.c:611: warning: nested extern declaration of ‘XvQueryBestSize’
ephyrhostvideo.c: In function ‘xv_wire_to_event’:
ephyrhostvideo.c:635: error: ‘XvEvent’ undeclared (first use in this function)
ephyrhostvideo.c:635: error: ‘re’ undeclared (first use in this function)
ephyrhostvideo.c:635: error: expected expression before ‘)’ token
ephyrhostvideo.c:641: error: ‘XvVideoNotify’ undeclared (first use in this function)
ephyrhostvideo.c:652: error: ‘XvPortNotify’ undeclared (first use in this function)
ephyrhostvideo.c: In function ‘ephyrHostXVPutImage’:
ephyrhostvideo.c:776: error: ‘XvImage’ undeclared (first use in this function)
ephyrhostvideo.c:776: error: ‘xv_image’ undeclared (first use in this function)
ephyrhostvideo.c:793: error: expected expression before ‘)’ token
ephyrhostvideo.c:816: warning: implicit declaration of function ‘XvPutImage’
ephyrhostvideo.c:816: warning: nested extern declaration of ‘XvPutImage’
ephyrhostvideo.c: In function ‘ephyrHostXVPutVideo’:
ephyrhostvideo.c:862: warning: implicit declaration of function ‘XvPutVideo’
ephyrhostvideo.c:862: warning: nested extern declaration of ‘XvPutVideo’
ephyrhostvideo.c: In function ‘ephyrHostXVGetVideo’:
ephyrhostvideo.c:899: warning: implicit declaration of function ‘XvGetVideo’
ephyrhostvideo.c:899: warning: nested extern declaration of ‘XvGetVideo’
ephyrhostvideo.c: In function ‘ephyrHostXVPutStill’:
ephyrhostvideo.c:936: warning: implicit declaration of function ‘XvPutStill’
ephyrhostvideo.c:936: warning: nested extern declaration of ‘XvPutStill’
ephyrhostvideo.c: In function ‘ephyrHostXVGetStill’:
ephyrhostvideo.c:973: warning: implicit declaration of function ‘XvGetStill’
ephyrhostvideo.c:973: warning: nested extern declaration of ‘XvGetStill’
ephyrhostvideo.c: In function ‘ephyrHostXVStopVideo’:
ephyrhostvideo.c:1003: warning: implicit declaration of function ‘XvStopVideo’
ephyrhostvideo.c:1003: warning: nested extern declaration of ‘XvStopVideo’
make[3]: *** [ephyrhostvideo.o] Error 1
make[3]: Leaving directory `/home/x910/Downloads/xephyr-with-gl-acceleration-xephyr-with-gl-acceleration/xserver/hw/kdrive/ephyr'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/x910/Downloads/xephyr-with-gl-acceleration-xephyr-with-gl-acceleration/xserver/hw/kdrive'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/x910/Downloads/xephyr-with-gl-acceleration-xephyr-with-gl-acceleration/xserver/hw'
make: *** [all-recursive] Error 1
sudo apt-get install libxv-dev
undefined reference to `XOpenDisplay'
./configure --enable-debug --enable-kdrive --enable-dri2 --enable-xephyr --with-dri-driver-path=/usr/lib/dri/ --disable-xorg CFLAGS="-DDEBUG -g -lX11"