﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Notes of Ouyang-随笔分类-Project Experiences</title><link>http://www.cppblog.com/ouyang/category/6724.html</link><description>Intresting in P2P &amp; MANET Research and development, Handle-set  embedded system design and programming. </description><language>zh-cn</language><lastBuildDate>Mon, 23 Mar 2009 11:33:54 GMT</lastBuildDate><pubDate>Mon, 23 Mar 2009 11:33:54 GMT</pubDate><ttl>60</ttl><item><title>写了个几千行代码的垃圾程序</title><link>http://www.cppblog.com/ouyang/archive/2009/03/22/77516.html</link><dc:creator>金陵书生</dc:creator><author>金陵书生</author><pubDate>Sun, 22 Mar 2009 13:24:00 GMT</pubDate><guid>http://www.cppblog.com/ouyang/archive/2009/03/22/77516.html</guid><wfw:comment>http://www.cppblog.com/ouyang/comments/77516.html</wfw:comment><comments>http://www.cppblog.com/ouyang/archive/2009/03/22/77516.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cppblog.com/ouyang/comments/commentRss/77516.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ouyang/services/trackbacks/77516.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为了毕业，花了段时间写了个几千行代码的程序，加上使用的从eMule中抽取出来的Kademlia代码，差不多也有25000行了。可是越往下做越觉得偏离了我原来的想法，也越来越缺少具体的使用价值了，很沮丧，也很想放弃了。<br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 过段时间闲一点的时候一定要按照我原来的想法重新写好这个程序：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1. 支持无中心的P2P文件共享，彻底解决校园网中靠个人架设FTP来完成电影、软件、资料等交换的问题。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2. 支持带访问控制的AICH，即要避免私密文件的泄露，又要使得可以同时从多点下载智能合并。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. 支持飞鸽传输协议（能支持飞秋更好），同时具有文件交换和即时通讯等功能。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. 兼容eMule-VeryCD，可以在联网的情况下下载eMule资源。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5. 按照硕士论文中的组网设计，提供嵌入式Linux版本</p>
<img src ="http://www.cppblog.com/ouyang/aggbug/77516.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ouyang/" target="_blank">金陵书生</a> 2009-03-22 21:24 <a href="http://www.cppblog.com/ouyang/archive/2009/03/22/77516.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>minigui-1.3.3及其示例程序编译的详细过程</title><link>http://www.cppblog.com/ouyang/archive/2008/05/17/50130.html</link><dc:creator>金陵书生</dc:creator><author>金陵书生</author><pubDate>Sat, 17 May 2008 02:23:00 GMT</pubDate><guid>http://www.cppblog.com/ouyang/archive/2008/05/17/50130.html</guid><wfw:comment>http://www.cppblog.com/ouyang/comments/50130.html</wfw:comment><comments>http://www.cppblog.com/ouyang/archive/2008/05/17/50130.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/ouyang/comments/commentRss/50130.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/ouyang/services/trackbacks/50130.html</trackback:ping><description><![CDATA[<meta http-equiv="CONTENT-TYPE" content="text/html; charset=" utf-8="">
<title></title>
<meta name="GENERATOR" content="OpenOffice.org 2.4  (Linux)">
<style type="text/css">
<!--
@page { size: 8.5in 11in; margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<p style="margin-bottom: 0in;" align="center"><font style="font-size: 16pt;" size="4"><strong>minigui-1.3.3</strong></font><font face="DejaVu Sans"><font style="font-size: 16pt;" size="4"><strong>及其示例程序编译的详细过程</strong></font></font></p>
<p style="margin-bottom: 0in; text-align: right;">						<font face="DejaVu Sans">金陵书生</font>&lt;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#111;&#117;&#121;&#97;&#110;&#103;&#64;&#110;&#106;&#117;&#112;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;">ouyang_njupt (at) 126.com</a>&gt;
2008.05.16</p>
<p style="margin-bottom: 0in;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;	<font face="DejaVu Sans">在开始介绍</font>minigui<font face="DejaVu Sans">的编译过程之前，先给出两个对本文档的说明。首先，本文档介绍的是交叉编译</font>minigui<font face="DejaVu Sans">，因此所编译出来的所有可执行文件都只
能在目标板上运行，试图在编译后直接运行是得不到任何结果的，而且还会提示说不是可执行文件</font>(elf)<font face="DejaVu Sans">。其次，文档中的</font>linux<font face="DejaVu Sans">命令都采用灰色背景跟其
他文字区分开来。命令中的的第一个字母</font>&gt;<font face="DejaVu Sans">表示用户</font>console<font face="DejaVu Sans">窗口中的命令提示符，具体操作的时候请不要输入该字符。</font></p>
<p style="margin-bottom: 0in;"><font face="DejaVu Sans">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文档本来是为项目写的，因此署了常用的邮箱，没想到马上就有垃圾邮件过来了。真烦人。<br></font></p>
<p style="margin-bottom: 0in;"><br>
</p>
<p style="margin-bottom: 0in;"><font face="DejaVu Sans">一。编译华恒科技移植好的</font>minigui-1.3.3<font face="DejaVu Sans">库及其测试程序</font></p>
<p style="margin-bottom: 0in;">	<font face="DejaVu Sans">执行了</font>HHARMMX21<font face="DejaVu Sans">附带的光盘中的</font>arminst<font face="DejaVu Sans">后会创建好</font>/HHARMMX21<font face="DejaVu Sans">目录，其中</font>minigui<font face="DejaVu Sans">位于</font>/HHARMMX21/applications/minigui-free/<font face="DejaVu Sans">目录下。该目录下的</font>HHTECH.readme<font face="DejaVu Sans">是编译华恒科技移植好的</font>minigui<font face="DejaVu Sans">的过程说明。</font></p>
<p style="margin-bottom: 0in;">	<font face="DejaVu Sans">执行</font>HHTECH.readme<font face="DejaVu Sans">中的前四个步骤（如下</font>):
</p>
<p style="margin-bottom: 0in;">	Step 1:
</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	cd
/HHARMMX21/applications/minigui-free/libminigui-1.3.3
</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	./HHTECH.inst.lib
</p>
<p style="margin-bottom: 0in;">
</p>
<p style="margin-bottom: 0in;">	Step 2:
</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	cd
/HHARMMX21/applications/minigui-free/mg-samples-1.3.1/
</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	./HHTECH.compile.mg
</p>
<p style="margin-bottom: 0in;">
</p>
<p style="margin-bottom: 0in;">	Step 3:
</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	cd
/HHARMMX21/applications/minigui-free/minigui-res-1.3.3/
</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	./HHTECH.insti
</p>
<p style="margin-bottom: 0in;">
</p>
<p style="margin-bottom: 0in;">	Step 4:
</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	/HHARMMX21/applications/minigui-free/nfsroot
</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	./HHTECH.reduce.lib</p>
<p style="margin-bottom: 0in;">	<font face="DejaVu Sans">执行完这四步以后，</font>minigui<font face="DejaVu Sans">库已经编译和安装好了。但是</font>mg-samples<font face="DejaVu Sans">中的示例程序都是些演示某个单一控件的使用方法的小程序。使用</font>minigui<font face="DejaVu Sans">来开发的复杂一点的程序都在</font>mde<font face="DejaVu Sans">中。而华恒科技提供的说明文档中并未提到这一点。根据分析，华恒科技提供的</font>mde<font face="DejaVu Sans">无法直接编译通过，估计就是因为这样华恒科技才没有在</font>HHTECH.readme<font face="DejaVu Sans">中给出</font>mde<font face="DejaVu Sans">的编译过程。下面是我根据网络资料和对</font>mde<font face="DejaVu Sans">进行分析后实践出来的</font>mde<font face="DejaVu Sans">编译过程。</font>	</p>
<p style="margin-bottom: 0in;"><font face="DejaVu Sans">二。
编译</font>mde-1.3.0</p>
<p style="margin-bottom: 0in;">	mde<font face="DejaVu Sans">的编译需要用到
</font>popt<font face="DejaVu Sans">库，因此我们需要先下载和编译</font>popt<font face="DejaVu Sans">库。我已经将</font>libpopt<font face="DejaVu Sans">库上传到实验室内部网站了，在上传下载中可以找到，文件名为</font>popt_1.10.orig.tar.gz<font face="DejaVu Sans">。</font></p>
<ol>
    <li>
    <p style="margin-bottom: 0in;"><font face="DejaVu Sans">交叉编译</font>libpopt</p>
    <p style="margin-bottom: 0in;">libpopt<font face="DejaVu Sans">的编译比较简单，关键在于使用正确的交叉编译工具。</font></p>
    <p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">tar xvzf
    popt_1.10.orig.tar.gz</p>
    <p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">cd popt</p>
    </li>
</ol>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	&gt;CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc
./configure --build=i686-pc-linux-gnu --host=arm-unknown-linux
--prefix=/HHARMMX21/applications/minigui-free/nfsroot/
--target=arm-unknown-linux</p>
<ol>
    <p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">&gt;make</p>
    <p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">&gt;make install</p>
    <p style="margin-bottom: 0in;"><font face="DejaVu Sans">这里有两个地方容易出现问题：一是权限问题。</font>Linux<font face="DejaVu Sans">下对文件的权限有很严格的设定，因此可能会出现用户没有访问或者建立目录的权限导致无法解压缩。或者是没有权限读写
    </font>/HHARMMX21/applications/minigui-free/nfsroot<font face="DejaVu Sans">而导致</font>make
    install<font face="DejaVu Sans">出错。另一个是交叉编译工具链的设置问题，需要通过</font>CC=/opt/host/armv4l/bin/armv4l-unknown-linux-gcc<font face="DejaVu Sans">命令来指向正确的交叉编译工具链。这里我是通过分析</font>mg-samples-1.3.1<font face="DejaVu Sans">的</font>Makefile<font face="DejaVu Sans">文件而得到交叉编译工具链的名称和位置的。</font></p>
    <p style="margin-bottom: 0in;"><font face="DejaVu Sans">如果上面命令执行无误，则</font>/HHARMMX21/applications/minigui-free/nfsroot/lib/<font face="DejaVu Sans">下有</font>libpopt.a,libpopt.la,libpopt.so,libpopt.so.0,libpopt.so.0.0.0<font face="DejaVu Sans">等几个文件，在</font>/HHARMMX21/applications/minigui-free/nfsroot/include/<font face="DejaVu Sans">下有</font>popt.h<font face="DejaVu Sans">文件。</font></p>
    <li>
    <p style="margin-bottom: 0in;"><font face="DejaVu Sans">编译</font>mde-1.3.0</p>
    </li>
</ol>
<p style="margin-bottom: 0in;">	<font face="DejaVu Sans">华恒科技提供的</font>HHARMMX21<font face="DejaVu Sans">附带光盘中的</font>mde-1.3.0<font face="DejaVu Sans">文件有问题，估计是其开发人员没能解决</font>popt<font face="DejaVu Sans">库的问题，所以想通过修改</font>mde-1.3.0<font face="DejaVu Sans">下的</font>tools<font face="DejaVu Sans">目录下的</font>vcongui.c<font face="DejaVu Sans">文件来屏蔽对</font>popt<font face="DejaVu Sans">库的调用，结果没有成功，却忘了恢复对</font>mde-1.3.0<font face="DejaVu Sans">源代码的修改。因此我们需要编辑</font>vcongui.c<font face="DejaVu Sans">文件来去掉对</font>#include
&lt;popt.h&gt;<font face="DejaVu Sans">的注释。</font></p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	cd
/HHARMMX21/applications/minigui-free/mde-1.3.0/tools/</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	gedit vcongui.c</p>
<p style="margin-bottom: 0in;">	<font face="DejaVu Sans">将第</font>5<font face="DejaVu Sans">行由</font></p>
<p style="margin-bottom: 0in;">	//#include &lt;popt.h&gt;</p>
<p style="margin-bottom: 0in;">	<font face="DejaVu Sans">改为</font></p>
<p style="margin-bottom: 0in;">	#include &lt;popt.h&gt;
</p>
<p style="margin-bottom: 0in;">	<font face="DejaVu Sans">也就是去掉对</font>#include
&lt;popt.h&gt;<font face="DejaVu Sans">的注释。然后回到</font>mde-1.3.0<font face="DejaVu Sans">目录下，执行</font>./HHTECH.compile.mg<font face="DejaVu Sans">编译</font>mde.</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	cd
/HHARMMX21/applications/minigui-free/mde-1.3.0/</p>
<p style="background: #cccccc none repeat scroll 0% 0%; margin-bottom: 0in; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">	./HHTECH.compile.mg</p>
<p style="margin-bottom: 0in;">	<font face="DejaVu Sans">如果执行无误则成功编译了</font>mde-1.3.0<font face="DejaVu Sans">，这时可以去</font>bomb,notebook<font face="DejaVu Sans">等目录下看一下，应该已经生成了程序的可执行文件。其中</font>mde-1.3.0<font face="DejaVu Sans">下的</font>bomb<font face="DejaVu Sans">目录包含的是一个扫地雷游戏，挺好玩的。</font></p>
<p style="margin-bottom: 0in;">	<font face="DejaVu Sans">请别忘了，所有交叉编译出来的程序必须到目标板上才能运行，也就是只能通过</font>MAINet<font face="DejaVu Sans">手持终端才能执行，在自己的电脑上是无法执行和查看效果的。</font></p><img src ="http://www.cppblog.com/ouyang/aggbug/50130.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/ouyang/" target="_blank">金陵书生</a> 2008-05-17 10:23 <a href="http://www.cppblog.com/ouyang/archive/2008/05/17/50130.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>