TinyX 的编译(转贴)

由于需要,前面一段时间搜索了一下网上关于tinyX编译的文章,国内网站没有什么有用的文章(也可能是我没有看懂)。想下载tinyX的代码,结 果只下载了X的代码。后面经过一番折腾,终于交叉编译tinyx成功,过程简单,特写出来共享一下。当然在freedesktop.org上你可以找到更 详细的指导!

1/代码:您可以在http://webcvs.freedesktop.org/xserver/xserver/下载到tinyX的代码,由于我的linux机器无法连接到internet,所以在window下手动下载了代码,这里可能需要你一个个文件下载,我没有发现已经打包好的。要不你在仔细找找!

2/编译:在下载了你想要的库后,你会发现它里面有个编译脚本,这个只是普通编译的脚本,如果想要交叉编译,需要修改一下。

        1)编译之前请检查一下你的工具配置情况(这一点很重要):

                         autoconf --version must report 2.59 or later

           automake --version must report 1.9.x

           libtool --version must report 1.5 (available from http://ftp.gnu.org/gnu/libtool/ if your   distribution doesn't have it)

           pkg-config --version must report 0.9.0 or later

          2)问题:

       如果遇到这种问题:

checking for pkg-config... /opt/gnome2/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for XDMCP... yes
checking for XdmcpWrap in -lXdmcp... yes
checking for XEPHYR... yes
checking for XSERVER... configure: error: Package requirements (randrproto renderproto fixesproto damageproto xextproto xfont xproto xtrans xau compositeproto resourceproto recordproto xdmcp xdmcp) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively you may set the XSERVER_CFLAGS and XSERVER_LIBS environment variables
to avoid the need to call pkg-config. See the pkg-config man page for
more details.
*** error during stage configure of xserver: could not configure module *** [32/38]
这可能是.pc文件问题,请做以下链接:
cd /opt/fdo/lib/pkgconfig
ln -s randr.pc randrproto.pc
ln -s render.pc renderproto.pc
ln -s fixesext.pc fixesproto.pc
ln -s damageext.pc damageproto.pc
ln -s xext.pc xextproto.pc
ln -s compositeext.pc compositeproto.pc
ln -s resourceext.pc resourceproto.pc
ln -s recordext.pc recordproto.pc
       3)编译脚本:XserverBuildScript这是它的编译脚本,有个问题,每次运行它都要重头开始。有时间哪位兄弟修改一下,
免得每次编译都要花很长时间,特别是在虚拟机上。编译脚本如下:
cvs login is no longer required when using cvs.freedesktop.org.

if [ -z "$PKG_CONFIG_PATH" ]; then
export PKG_CONFIG_PATH=/opt/fdo/lib/pkgconfig
else
export PKG_CONFIG_PATH="/opt/fdo/lib/pkgconfig:$PKG_CONFIG_PATH"
fi

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xproto
pushd Xproto
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xdmcp
pushd Xdmcp
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co XExtensions
pushd XExtensions
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co xtrans
pushd xtrans
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xau
pushd Xau
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co X11
pushd X11
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xext
pushd Xext
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Randr
pushd Randr
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Render
pushd Render
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xrender
pushd Xrender
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xrandr
pushd Xrandr
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co FixesExt
pushd FixesExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co DamageExt
pushd DamageExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xfont
pushd Xfont
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co ResourceExt
pushd ResourceExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co RecordExt
pushd RecordExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co CompositeExt
pushd CompositeExt
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co xkbfile
pushd xkbfile
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xserver co xserver
pushd xserver
./autogen.sh --prefix=/opt/fdo --enable-composite
make
sudo install -d /opt/fdo/bin
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xfixes
pushd Xfixes
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xcomposite
pushd Xcomposite
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

cvs -d :pserver:anoncvs@cvs.freedesktop.org:/cvs/xlibs co Xdamage
pushd Xdamage
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

# http://cvs.freedesktop.org/xapps/
wget http://www.freedesktop.org/xapps/release/xcompmgr-1.1.tar.gz
tar zxf xcompmgr-1.1.tar.gz
pushd xcompmgr-1.1
./autogen.sh --prefix=/opt/fdo
make
sudo make install
popd

# to start server, try something like...
sudo /opt/fdo/bin/Xvesa :1 & xterm -display :1

# in xterm...
export LD_LIBRARY_PATH="/opt/fdo/lib:$LD_LIBRARY_PATH"
/opt/fdo/bin/xcompmgr
如果你想交叉编译,请修改一下./autogen.sh --prefix=/opt/fdo--》./autogen.sh --prefix=/opt/fdo --host=arm-linux --build=i386-linux
当然后面加的需要根据你的实际情况,如果你的交叉编译器是arm-unknown-linux-gnu-*(gcc),你可以改为--host=arm-unknown-linux-gnu.
运行脚本即可。
3/运行
 在您的调试板上,运行一下试试看,别忘了:export DISPLAY=:0
如果出现了一个带光标的窗口,恭喜,成功!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您好!要使用C++的TinyXML库解析base_map.xml文件,您需要完成以下几个步骤: 1. 首先,您需要下载TinyXML库的源代码并将其添加到您的项目中。您可以从TinyXML的官方网站(http://www.grinninglizard.com/tinyxml/)下载最新版本的源代码。 2. 将下载的TinyXML源代码文件解压缩,并将其包含文件(tinyxml.h)和源文件(tinyxml.cpp 和 tinyxmlerror.cpp)添加到您的项目中。 3. 在您的C++代码中,包含TinyXML的头文件: ```cpp #include "tinyxml.h" ``` 4. 创建一个TiXmlDocument对象,并使用LoadFile函数加载XML文件: ```cpp TiXmlDocument doc; if (!doc.LoadFile("base_map.xml")) { // 处理加载文件失败的情况 return; } ``` 5. 通过获取根元素,从中开始解析XML文档: ```cpp TiXmlElement* rootElement = doc.RootElement(); if (rootElement == nullptr) { // 处理获取根元素失败的情况 return; } // 根据需要解析XML文档的其他部分 ``` 6. 根据您的XML结构,使用TinyXML提供的函数来获取和操作各个元素和属性。例如,如果您有一个名为"map"的根元素,并且它包含一个名为"tile"的子元素,您可以使用如下代码来遍历所有的"tile"元素: ```cpp TiXmlElement* tileElement = rootElement->FirstChildElement("tile"); while (tileElement != nullptr) { // 处理每个"tile"元素的逻辑 // ... // 获取下一个"tile"元素 tileElement = tileElement->NextSiblingElement("tile"); } ``` 请根据您的具体XML结构和需求,使用TinyXML提供的函数来解析和操作XML文件。这只是一个基本的示例,您可能需要根据您的实际情况进行适当的调整。 希望这个回答对您有所帮助!如果您有任何其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值