﻿<?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++博客-维尔福</title><link>http://www.cppblog.com/welflau/</link><description>游戏开发者</description><language>zh-cn</language><lastBuildDate>Sat, 04 Apr 2026 13:28:11 GMT</lastBuildDate><pubDate>Sat, 04 Apr 2026 13:28:11 GMT</pubDate><ttl>60</ttl><item><title>D3D资源管理 </title><link>http://www.cppblog.com/welflau/archive/2012/03/09/D3D_Resource.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Fri, 09 Mar 2012 07:33:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2012/03/09/D3D_Resource.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/167493.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2012/03/09/D3D_Resource.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/167493.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/167493.html</trackback:ping><description><![CDATA[<div>
<div>
<p><strong><span style="font-family: 宋体">摘要</span></strong></p>
<p><span style="font-family: 宋体">受管贴图（</span>Managed textures<span style="font-family: 宋体">，也就是我们通常所谓的&#8220;自动管理贴图&#8221;），在</span>DX6<span style="font-family: 宋体">中首次被引入，经过一系列的改进和增强，在</span>DX9<span style="font-family: 宋体">中自动管理的资源类型增加到贴图，顶点缓冲，顶点索引缓冲，所有这些资源使用统一的公共接口。通过使用</span>D3D<span style="font-family: 宋体">资源管理器，应用程序可以轻松的处理设备丢失、处理稍微过量的显存使用。</span></p>
<p><span style="font-family: 宋体">有时开发者在使用受管资源会遇到一些困难，这部分归咎与系统的抽象特性。在大多数情况下使用受管对象是不错的选择，但有时出于性能考虑也会使用非托管资源。这篇文章将讨论一般情况下如何处理资源，受管与非受管资源的行为差别。</span></p>
<p>&nbsp;</p>
<p><strong><span style="font-family: 宋体">内容</span></strong></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">显示内存</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">受管资源</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">驱动管制资源</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">默认资源</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">系统内存资源</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">一般性的建议</span></p>
<p>&nbsp;</p>
<p><strong><span style="font-family: 宋体">显示内存</span></strong></p>
<p><span style="font-family: 宋体">为了使得资源可以利用显存，</span>GPU<span style="font-family: 宋体">需要通过内存访问定位他。</span>GPU<span style="font-family: 宋体">访问（</span>Local video memory<span style="font-family: 宋体">）显存是非常高效的，并且某些资源（例如</span>RenderTarget<span style="font-family: 宋体">，深度、模板缓冲）必须在本地显存（</span>Local video memory<span style="font-family: 宋体">）定位。由于</span>AGP<span style="font-family: 宋体">的出现，</span>GPU<span style="font-family: 宋体">可以直接访问部分系统内存，而这部分系统内存区域就是所谓的非本地显存（</span>non-local video memory<span style="font-family: 宋体">），当然这部分内存（显存）也是不能挪做它用的。非本地显存仅能被</span>GPU<span style="font-family: 宋体">访问，与访问本地显存相比，其效率低一些。需要明确的是，所有</span>AGP<span style="font-family: 宋体">内存在设备丢失时都会失效，都需要在恢复他们。</span></p>
<p align="center"><img height="305" alt="" src="http://www.sineysoft.com/article/imgs/d3d_rm1.jpg" width="330" v:shapes="_x0000_i1025" /> </p>
<p><span style="font-family: 宋体">一些集成显卡使用统一内存结构（</span>Unified Memory Architecture<span style="font-family: 宋体">），这样主内存可以被系统任何一个设备寻址。</span>D3D<span style="font-family: 宋体">支持</span>UMA<span style="font-family: 宋体">而不需要修改任何代码，这样我们把系统内存配置为本地显存，硬件确保资源的定位就像传统的结构一样进行工作。</span></p>
<p align="center"><img height="254" alt="" src="http://www.sineysoft.com/article/imgs/d3d_rm2.jpg" width="296" v:shapes="_x0000_i1026" /> </p>
<p><strong><span style="font-family: 宋体">受管资源</span></strong></p>
<p><span style="font-family: 宋体">大部分资源应该使用</span>POOL_MANAGED<span style="font-family: 宋体">方式创建，即受管资源。所有受管资源将被创建在系统内存，在需要的时候复制到显存。当发生设备丢失时会自动</span>copy<span style="font-family: 宋体">系统内存到显存。既然不是所有受管资源都需要一次送入显存，这样你可以提交超过渲染每帧所必须使用的最小内存容量，但是这样会使得大量显存内容因为分页操作而写到磁盘上，这是非常耗时的。这也是为什么恢复设备如此耗时，因为需要将大量磁盘数据复制到显存。</span></p>
<p>DX<span style="font-family: 宋体">会为每份资源在最后一次使用时加上时间戳，这样当显存分配失败时，它会释放那些最近最少使用的资源（</span>LRU<span style="font-family: 宋体">算法）。使用</span><strong>SetPriority</strong><span style="font-family: 宋体">函数可以标记资源的重要程度，重要的资源优于时间戳的判断，所以那些比较常用的资源应该设置高优先级，而不用担心因为时间戳过期而导致资源被释放。在</span>DX9<span style="font-family: 宋体">中，驱动程序提供的显存管理信息是非常有限的，运行时可能不得不清除大量资源用于分配足够的内存。设置适合的优先级是非常有用的，这样</span>D3D<span style="font-family: 宋体">不会清除那些马上又需要使用的资源。应用程序可以强制调用</span><strong>EvictManagedResources</strong><span style="font-family: 宋体">清除所有受管资源，但是如果下一帧又需要重新加载这些资源，这将是非常耗时的，不过这个函数在那些场景明显需要改变（比如进入下一个关卡）的情况下，还是非常有用的。</span></p>
<p><span style="font-family: 宋体">如果&#8220;当前帧&#8221;内需要非常多资源用于渲染，这将是件麻烦的事情，用前面的</span>LRU<span style="font-family: 宋体">方式调度资源效率就不太理想了，这个时候使用</span>MRU<span style="font-family: 宋体">资源调度方式取代，即优先清理那些比较活跃的资源。注意，这里&#8220;当前帧&#8221;的概念是指</span>BeginScene<span style="font-family: 宋体">和</span>EndScene<span style="font-family: 宋体">之间的需要渲染的帧。</span></p>
<p><span style="font-family: 宋体">开发人员如果想得到关于受管资源的更多信息，可以通过</span><strong>IDirect3DQuery9</strong><span style="font-family: 宋体">接口查询，但是这个接口仅能用于调试模式（</span>debug runtimes<span style="font-family: 宋体">），在发布版本中，应用程序不能依靠改接口的信息做任何假定。</span></p>
<p><span style="font-family: 宋体">了解资源管理如何工作可以帮助我们调试、调整程序，重要的是应用程序不要太过依赖当前的运行库（或者驱动程序）的资源管理方式，驱动更新有可能导致其行为发生变化，将来的</span>D3D<span style="font-family: 宋体">将会有套久经考验的资源管理方式。</span></p>
<p><strong><span style="font-family: 宋体">驱动程序管理的资源</span></strong></p>
<p>D3D<span style="font-family: 宋体">驱动可以自由的实现&#8220;由驱动管理贴图&#8221;的特性，通过</span>D3DCAPS2_CANMANAGERESOURCE<span style="font-family: 宋体">段可以</span><span style="font-family: 宋体">查询硬件驱动是否支持这个特性，这样驱动将代替</span>D3D<span style="font-family: 宋体">运行库管理资源。对于级少数的硬件是支持这个特性的，对于大多数硬件则不尽相同，你可以咨询你的产品提供商获得这方面信息。一般情况下，你可是使用</span>D3DCREATE_DISABLE_DRIVER_MANAGEMENT<span style="font-family: 宋体">方式创建设备，这样将由</span>D3D<span style="font-family: 宋体">运行库来管理资源。</span></p>
<p><strong><span style="font-family: 宋体">缺省资源管理（非受管资源）</span></strong></p>
<p><span style="font-family: 宋体">虽然受管资源非常简单，容易使用，高效，但是有时我们希望直接往显存里写东西，这种情况下我们需要使用</span>POOL_DEFAULT<span style="font-family: 宋体">方式创建资源。使用这种方式会增加程序的复杂性，代码需要应付所有设备丢失的情况，并需要谨慎考虑何时复制数据到显存。错误的指定</span>USAGE_WRITEONLY<span style="font-family: 宋体">标记或者锁定渲染目标（</span>Render Target<span style="font-family: 宋体">）将严重影响性能。</span></p>
<p><span style="font-family: 宋体">锁定</span>POOL_DEFAULT<span style="font-family: 宋体">类型的资源很可能导致</span>GPU<span style="font-family: 宋体">停止运转，这与</span>POOL_MANAGED<span style="font-family: 宋体">类型的资源是不同的，除非使用一些特性的指示标记。根据资源当前的位置不同，锁定后得到的指针也不相同，可能是一块临时的系统内存，也可能直接指向</span>AGP<span style="font-family: 宋体">内存。如果是临时的系统内存，</span>Unlock<span style="font-family: 宋体">后将把这段数据送入显存，这是因为如果显卡资源不是只写的（</span>write-only<span style="font-family: 宋体">），</span>Lock<span style="font-family: 宋体">的时候数据将不得不被送入一段临时的内存；如果指向的</span>AGP<span style="font-family: 宋体">内存区域，临时的拷贝是可以避免的，但是</span>cache<span style="font-family: 宋体">的行为将会降低性能。</span></p>
<p><span style="font-family: 宋体">为了避免在写入一整行数据（</span>a full cache line of data<span style="font-family: 宋体">）进入</span>AGP<span style="font-family: 宋体">内存区导致</span>write-combing<span style="font-family: 宋体">性能下降（一般是由于发生了一次读写周期），顺序的访问</span>AGP<span style="font-family: 宋体">内存是推荐的做法，如果你的程序需要随机的访问</span>AGP<span style="font-family: 宋体">内存，而你又不希望使用受管资源，那么你可以使用系统内存作为替代方案，这样当你生成了数据之后，可以</span>lock<span style="font-family: 宋体">后拷贝，这样不会带来太大的性能损失，这里的性能损失一般是由缓冲的&#8220;写搜索&#8221;操作引起。</span>(<span style="font-family: 宋体">注，这里关于词汇</span>cache write-combing<span style="font-family: 宋体">译者也不知道对应的中文含义，只能按照字面意思翻译，见谅</span>)</p>
<p><span style="font-family: 宋体">对于某些类型的资源，使用</span>LOCK_NOOVERWRITE<span style="font-family: 宋体">标记会使添加数据比较有效率，但是多次的</span>Lock<span style="font-family: 宋体">，</span>Unlock<span style="font-family: 宋体">同一资源还是需要尽量避免的，适当的利用多种不同的锁定标记对于效率优化使非常重要的，就像填充锁定内存区域最好使用</span>cache<span style="font-family: 宋体">友好的（</span>cache-friendly<span style="font-family: 宋体">）数据访问方式一样。</span></p>
<p><strong><span style="font-family: 宋体">受管资源和缺省资源混合使用</span></strong></p>
<p><span style="font-family: 宋体">受管资源与非受管资源的混合分配使用可能导致显存碎块，并且扰乱受管资源使用的内存区域。最好在使用受管资源前使用非受管资源，或者使用受管资源后使用</span>EvictManagedResources<span style="font-family: 宋体">函数清除那些受管资源再使用非受管资源。记住，所有非受管资源都会常驻显存，这样其他内存需求就不能使用了。</span></p>
<p><span style="font-family: 宋体">注意，与以往的</span>DX<span style="font-family: 宋体">版本不同，在显存缺乏时，如果分配非受管资源失败，</span>DX9<span style="font-family: 宋体">会自动清除受管资源，这有可能导致潜在的显存碎块，甚至把资源放入不适当的地方（比如非本地内存的静态贴图区）。所以，最好在使用受管资源之前分配全部的非受管资源。</span></p>
<p><strong><span style="font-family: 宋体">动态缺省资源</span></strong></p>
<p><span style="font-family: 宋体">如果数据需要很高频率更新，那最好使用非受管资源，并使用</span>USAGE_DYNAMIC<span style="font-family: 宋体">标记，这样驱动会决定最适合的地方放置这些需要经常更新的数据。这通常意味着放置在非本地显存中，这样对于</span>GPU<span style="font-family: 宋体">来说，访问速度可能相对要慢一些。而对于</span>UMA<span style="font-family: 宋体">架构，驱动将会选择</span>CPU<span style="font-family: 宋体">访问效率较高的特殊地方放置这些数据。</span></p>
<p><span style="font-family: 宋体">这种用法（动态缺省资源类型）一般用于软蒙皮和基于</span>CPU<span style="font-family: 宋体">计算的粒子系统的顶点</span>/<span style="font-family: 宋体">顶点索引的</span>Buffer<span style="font-family: 宋体">填充，</span>LOCK_DISCARD<span style="font-family: 宋体">标记可以保证资源仍被使用的时候，锁定操作不会导致系统停止暂停工作。在这种情况下，使用受管资源会更新系统内存，然后拷贝到显存。对于系统的非本地内存，多余拷贝是不需要的。</span></p>
<p><span style="font-family: 宋体">标准的贴图是不允许锁定的，仅仅可以通过</span>UpdateSurface<span style="font-family: 宋体">和</span>UpdateTexture<span style="font-family: 宋体">函数更新。一些系统支持动态贴图，它可以通过配合使用</span>LOCK_DISCARD<span style="font-family: 宋体">标记进行锁定，但这需要检查</span>D3DCAPS2_DYNAMICTEXTURES<span style="font-family: 宋体">硬件能力。对于高动态贴图（如视频、程序生成贴图），最好使用非受管资源和系统内存资源，并且通过</span>UpdateTexture<span style="font-family: 宋体">函数更新贴图。对于高频度的粒子更新，</span>UpdateTexture<span style="font-family: 宋体">函数可能是最好的选择。</span></p>
<p><span style="font-family: 宋体">在有限的总线－内存带宽下，静态贴图资源应该使用</span>POOL_MANAGED<span style="font-family: 宋体">方式，这样可以确保它最好的利用本地显存，并有较好的效率。对于&#8220;半静态&#8221;资源，使用动态类型资源有时会获得更好的效率。</span></p>
<p><strong><span style="font-family: 宋体">系统内存资源</span></strong></p>
<p><span style="font-family: 宋体">资源可以使用</span>POOL_SYSTEMMEM<span style="font-family: 宋体">方式创建。但他们不能用于图形管线，他们仅能做为源数据用于更新</span>POOL_DEFAULT<span style="font-family: 宋体">类型的资源，这是通过</span>UpdateSurface<span style="font-family: 宋体">和</span>UpdateTexture<span style="font-family: 宋体">函数完成的。他们的锁定操作也非常简单，尽管他们同样可能因为前面提到的原因导致系统停止运转。</span></p>
<p><span style="font-family: 宋体">虽然是在系统内存中创建资源，但</span>POOL_SYSTEMMEM<span style="font-family: 宋体">所支持的资源格式和能力（比如最大尺寸）是受硬件、驱动限制的。同样是在系统内存中创建资源的</span>POOL_SCRATCH<span style="font-family: 宋体">则没有这方面限制，它支持所有格式和能力，但设备却不能直接访问它。</span>SCRATCH<span style="font-family: 宋体">类型资源一般用于内容创建工具。</span></p>
<p align="center"><img height="363" alt="" src="http://www.sineysoft.com/article/imgs/d3d_rm3.jpg" width="398" v:shapes="_x0000_i1027" /> </p>
<p><strong><span style="font-family: 宋体">一般性的建议</span></strong></p>
<p><span style="font-family: 宋体">了解资源管理的技术实现细节对达成你的程序的性能目标是有非常大的帮助的，规划你的资源如何交给</span>D3D<span style="font-family: 宋体">并设计好的结构以便能及时加载必要的数据是一件非常复杂的工作，为此我们给出一些好的实践经验做为一般性的原则：</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">预处理你的资源。不要将耗时的加载资源、资源转换、资源优化丢给用户去做，虽然这样便于开发，但确让用户无法忍受。预处理这些资源可以加快加载，更快使用，你的用户也会发现你的程序跑的更快了。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">避免在每帧创建过多的资源。对于过多的资源加载，可以把他们分到多帧里完成或者不要急于释放那些暂时不用的资源。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">确保在一帧结束时已经断开了所有资源通道。（比如，顶点流，</span>texture stages<span style="font-family: 宋体">，顶点索引）。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">对于贴图，建议使用压缩贴图（</span>DXTn<span style="font-family: 宋体">）格式，建议使用</span>mip-map<span style="font-family: 宋体">或者将小贴图拼接为大贴图使用。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">建议使用顶点索引，这将减少数据传输量。</span></p>
<p style="margin-left: 21pt; text-indent: -21pt"><span style="font-family: wingdings">l<span style="font: 7pt 'Times New Roman'; font-size-adjust: none; font-stretch: normal">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">对于过渡的优化资源管理是需要谨慎的。如果你的程序过分依赖驱动、硬件和操作系统的某些特征，那么这些程序、硬件的修改将会导致潜在的性能问题。<br /><a href="http://www.cppblog.com/richardhe/articles/69204.html">http://www.cppblog.com/richardhe/articles/69204.html</a></span></p></div></div><script type="text/javascript">
//<![CDATA[ Sys.WebForms.PageRequestManager._initialize('AjaxHolder$scriptmanager1', document.getElementById('Form1'));
Sys.WebForms.PageRequestManager.getInstance()._updateControls(['tAjaxHolder$UpdatePanel1'], [], [], 90);
//]]&gt;
</script><img src ="http://www.cppblog.com/welflau/aggbug/167493.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2012-03-09 15:33 <a href="http://www.cppblog.com/welflau/archive/2012/03/09/D3D_Resource.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu 安装smb共享文件夹</title><link>http://www.cppblog.com/welflau/archive/2010/11/07/132900.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Sun, 07 Nov 2010 15:46:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2010/11/07/132900.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/132900.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2010/11/07/132900.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/132900.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/132900.html</trackback:ping><description><![CDATA[<meta http-equiv="content-type" content="text/html; charset=utf-8"><span  style="font-family: Arial, Helvetica, sans-serif; font-size: 14px; line-height: 22px; ">&nbsp;&nbsp; &nbsp;#sudo apt-get install samba<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; #sudo apt-get install smbfs<p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 安装完毕，从菜单进入 系统 －＞ 系统管理 －＞ 共享的文件夹，打开如下图所示的界面：</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp;</p><p align="center" style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><img title="ubuntu 安装smb共享文件夹 - 仙人掌 - 聆听宁静的声音" alt="ubuntu 安装smb共享文件夹 - 仙人掌 - 聆听宁静的声音" src="http://linux.chinaitlab.com/UploadFiles_7565/200811/20081128102748845.jpg" twffan="done" small="0" border="0" style="line-height: 22px; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; max-width: 100%; "></p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 添加准备共享的文件夹。</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 1. XP匿名访问<a href="http://linux.chinaitlab.com/Special/Ubuntu/Index.html" target="_blank" style="line-height: 22px; text-decoration: none; color: rgb(185, 113, 62); ">Ubuntu</a>共享文件<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 使用samba不进行任何设置时，winXP机器可以连接到<a href="http://linux.chinaitlab.com/Special/Ubuntu/Index.html" target="_blank" style="line-height: 22px; text-decoration: none; color: rgb(185, 113, 62); ">Ubuntu</a>机器但提示输入用户名密码，此时不论输入什么都不能访问，要实现匿名访问需要做如下设置：</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 1) 修改配置文件smb.conf：<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sudo vim /etc/samba/smb.conf<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将security=user那一行前的注释符";"去掉，然后把user改为share。<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 2) 重启samba：<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #sudo /etc/init.d/samba restart</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 2. WinXP下用用户名和密码访问<a href="http://linux.chinaitlab.com/Special/Ubuntu/Index.html" target="_blank" style="line-height: 22px; text-decoration: none; color: rgb(185, 113, 62); ">Ubuntu</a>共享文件<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 下面我们来共享群组可读写文件夹，假设你要共享的文件夹为： /home/ray/share首先创建这个文件夹<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #mkdir /home/ray/share<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #chmod 777 /home/ray/share</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 备份并编辑smb.conf允许网络用户访问<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; sudo gedit /etc/samba/smb.conf</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 搜寻这一行文字<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; ; security = user</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 用下面这几行取代<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; security = user<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; username map = /etc/samba/smbusers</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 将下列几行代码添加到文件的最后面，假设允许访问的用户为：newsfan。而文件夹的共享名为 Share<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; [Share]<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; comment = Shared Folder with username and password<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; path = /home/ray/share<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; public = yes<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; writable = yes<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; valid users = newsfan<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; create mask = 0700<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; directory mask = 0700<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; force user = nobody<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; force group = nogroup<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; available = yes<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; browseable = yes</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 然后顺便把这里改一下，找到［global］把 workgroup = MSHOME 改成<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; workgroup = WORKGROUP<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; display charset = UTF-8<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; unix charset = UTF-8<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; dos charset = cp936</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 后面的三行是为了防止出现中文目录乱码的情况。其中根据你的local，UTF-8 有可能需要改成 cp936。自己看着办吧。现在要添加newsfan这个网络访问帐户。如果系统中当前没有这个帐户，那么<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; sudo useradd newsfan</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 要注意，上面只是增加了newsfan这个用户，却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问，不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。现在要新增网络使用者的帐号：<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; #sudo smbpasswd -a newsfan<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; #sudo gedit /etc/samba/smbusers</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 在新建立的文件内加入下面这一行并保存<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; newsfan = &#8220;network username&#8221;</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 如果将来需要更改newsfan的网络访问密码，也用这个命令更改<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; #sudo smbpasswd -a newsfan</p><p style="line-height: 22px; margin-top: 0px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">&nbsp;&nbsp;&nbsp; 删除网络使用者的帐号的命令把上面的 -a 改成 -x<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; 代码:<br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; #sudo testp<a href="http://embed.chinaitlab.com/" target="_blank" style="line-height: 22px; text-decoration: none; color: rgb(185, 113, 62); ">arm</a><br style="line-height: 22px; ">&nbsp;&nbsp;&nbsp; #sudo /etc/init.d/samba restart</p></span>
<img src ="http://www.cppblog.com/welflau/aggbug/132900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2010-11-07 23:46 <a href="http://www.cppblog.com/welflau/archive/2010/11/07/132900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu 下配置 C/C++ 开发环境</title><link>http://www.cppblog.com/welflau/archive/2010/11/07/132897.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Sun, 07 Nov 2010 15:26:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2010/11/07/132897.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/132897.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2010/11/07/132897.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/132897.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/132897.html</trackback:ping><description><![CDATA[
<meta http-equiv="content-type" content="text/html; charset=utf-8"><span style="color: rgb(102, 102, 102); font-family: Verdana, Tahoma, sans-serif; font-size: 14px; line-height: 22px; "><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">1、配置GCC</p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">　　其实刚装好的系统中已经有GCC了，但是这个GCC什么文件都不能编译，因为没有一些必须的头文件，所以要安装build-essential这个软件包，安装了这个包会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1-dev等一些必须的软件和头文件的库。</p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">输入命令</p><div class="codeText" style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-left-color: rgb(221, 221, 221); width: 656px; overflow-x: auto; overflow-y: auto; word-break: break-all; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font: normal normal normal 12px/normal 'Courier New', monospace; "><div class="codeHead" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 15px; font-weight: bold; font-size: 12px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); ">Ubuntu命令</div><ol class="dp-xml" style="margin-top: 0px; margin-right: 1px; margin-bottom: 0px; margin-left: 45px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; list-style-type: decimal-leading-zero; list-style-position: initial; list-style-image: initial; color: rgb(92, 92, 92); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(221, 221, 221); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><li class="alt" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">sudo&nbsp;apt-get&nbsp;install&nbsp;build-essential&nbsp;&nbsp;</span></span></li></ol></div><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">安装完成后写一个 C 语言程序 hello.c 测试一下</p><div class="codeText" style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-left-color: rgb(221, 221, 221); width: 656px; overflow-x: auto; overflow-y: auto; word-break: break-all; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font: normal normal normal 12px/normal 'Courier New', monospace; "><div class="codeHead" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 15px; font-weight: bold; font-size: 12px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); ">C 代码</div><ol class="dp-cpp" style="margin-top: 0px; margin-right: 1px; margin-bottom: 0px; margin-left: 45px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; list-style-type: decimal-leading-zero; list-style-position: initial; list-style-image: initial; color: rgb(92, 92, 92); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(221, 221, 221); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><li class="alt" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); "><span class="preprocessor" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(205, 0, 205); font-weight: bold; ">#include&lt;stdio.h&gt;&nbsp;</span><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">&nbsp;&nbsp;</span></span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span class="datatypes" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(46, 139, 87); font-weight: bold; ">int</span><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">&nbsp;main() &nbsp;&nbsp;</span></li><li class="alt" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">{ &nbsp;&nbsp;</span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">&nbsp;&nbsp;&nbsp;printf(</span><span class="string" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: red; ">"Hello&nbsp;Ubuntu!\n"</span><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">); &nbsp;&nbsp;</span></li><li class="alt" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">&nbsp;&nbsp;&nbsp;</span><span class="keyword" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(86, 151, 217); font-weight: bold; ">return</span><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">&nbsp;0; &nbsp;&nbsp;</span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">}&nbsp;&nbsp;</span></li></ol></div><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">在终端输入</p><div class="codeText" style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-left-color: rgb(221, 221, 221); width: 656px; overflow-x: auto; overflow-y: auto; word-break: break-all; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font: normal normal normal 12px/normal 'Courier New', monospace; "><div class="codeHead" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 15px; font-weight: bold; font-size: 12px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); ">Ubuntu命令</div><ol class="dp-xml" style="margin-top: 0px; margin-right: 1px; margin-bottom: 0px; margin-left: 45px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; list-style-type: decimal-leading-zero; list-style-position: initial; list-style-image: initial; color: rgb(92, 92, 92); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(221, 221, 221); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><li class="alt" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">$&nbsp;gcc&nbsp;hello.c&nbsp;-o&nbsp;hello &nbsp;&nbsp;</span></span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">$&nbsp;./hello&nbsp;&nbsp;</span></li></ol></div><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">显示&nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">Hello Ubuntu!<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">这样，C 语言编译器就安装成功了！</p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">2、安装 GTK 环境</p><div class="codeText" style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.1em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-left-color: rgb(221, 221, 221); width: 656px; overflow-x: auto; overflow-y: auto; word-break: break-all; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); font: normal normal normal 12px/normal 'Courier New', monospace; "><div class="codeHead" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 15px; font-weight: bold; font-size: 12px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); ">Ubuntu命令</div><ol class="dp-xml" style="margin-top: 0px; margin-right: 1px; margin-bottom: 0px; margin-left: 45px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; list-style-type: decimal-leading-zero; list-style-position: initial; list-style-image: initial; color: rgb(92, 92, 92); border-left-width: 1px; border-left-style: solid; border-left-color: rgb(221, 221, 221); background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><li class="alt" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">sudo&nbsp;apt-get&nbsp;install&nbsp;gnome-core-devel &nbsp;&nbsp;</span></span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">sudo&nbsp;apt-get&nbsp;install&nbsp;libglib2.0-doc&nbsp;libgtk2.0-doc &nbsp;&nbsp;</span></li><li class="alt" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">sudo&nbsp;apt-get&nbsp;install&nbsp;devhelp &nbsp;&nbsp;</span></li><li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 10px; background-image: initial; background-attachment: initial; background-origin: initial; background-clip: initial; background-color: rgb(255, 255, 255); background-position: initial initial; background-repeat: initial initial; "><span style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; color: rgb(0, 0, 0); ">sudo&nbsp;apt-get&nbsp;install&nbsp;glade-gnome&nbsp;glade-common&nbsp;glade-doc&nbsp;&nbsp;</span></li></ol></div><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">这样，就可以在 Ubuntu 下进行 C/C++ 程序的图形界面设计了。</p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><meta http-equiv="content-type" content="text/html; charset=utf-8"><a href="http://www.baiba.net/blog/?action=show&amp;id=56">http://www.baiba.net/blog/?action=show&amp;id=56</a></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br></p><p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><meta http-equiv="content-type" content="text/html; charset=utf-8"><span  style="color: rgb(0, 0, 0); font-family: 'Lucida Grande', Verdana, Helvetica, Arial, sans-serif; font-size: 12px; line-height: normal; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "><div class="postbody" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; line-height: 16px; font-family: 'Lucida Grande', 'Trebuchet MS', Helvetica, Arial, sans-serif; ">安装完成后我们也同样做个测试程序<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><div class="codetitle" style="margin-top: 10px; margin-right: 5px; margin-bottom: 0px; margin-left: 5px; padding-top: 2px; padding-right: 4px; padding-bottom: 2px; padding-left: 4px; border-left-color: rgb(159, 76, 9); font-family: 'Lucida Grande', Verdana, Helvetica, Arial, sans-serif; font-size: 1em; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">代码:</strong></div><div class="codecontent" style="margin-top: 0px; margin-right: 5px; margin-bottom: 10px; margin-left: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; direction: ltr; border-left-color: rgb(153, 139, 117); font-weight: normal; color: rgb(0, 102, 0); line-height: 16px; font-size: 1em; font-family: Monaco, 'Courier New', monospace; background-color: rgb(250, 250, 250); ">#include&lt;gtk/gtk.h&gt;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">void hello(GtkWidget *widget,gpointer data)<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">{<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">g_print("Hello Ubuntu!\n");<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">{<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">g_print ("delete event occurred\n");<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">return(TRUE);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">void destroy(GtkWidget *widget,gpointer data)<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">{<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_main_quit();<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">int main( int argc, char *argv[] )<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">{<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">GtkWidget *window;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">GtkWidget *button;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_init (&amp;argc, &amp;argv);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">window=gtk_window_new (GTK_WINDOW_TOPLEVEL);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_container_set_border_width (GTK_CONTAINER (window), 10);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">button = gtk_button_new_with_label ("Hello Ubuntu!");<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_container_add (GTK_CONTAINER (window), button);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_widget_show (button);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_widget_show (window);&nbsp; &nbsp;/*显示一个窗口*/<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">gtk_main();&nbsp; &nbsp;/*进入主循环*/<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">return(0);<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">}<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "></div><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">用下面命令编译运行<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><div class="codetitle" style="margin-top: 10px; margin-right: 5px; margin-bottom: 0px; margin-left: 5px; padding-top: 2px; padding-right: 4px; padding-bottom: 2px; padding-left: 4px; border-left-color: rgb(159, 76, 9); font-family: 'Lucida Grande', Verdana, Helvetica, Arial, sans-serif; font-size: 1em; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">代码:</strong></div><div class="codecontent" style="margin-top: 0px; margin-right: 5px; margin-bottom: 10px; margin-left: 5px; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; direction: ltr; border-left-color: rgb(153, 139, 117); font-weight: normal; color: rgb(0, 102, 0); line-height: 16px; font-size: 1em; font-family: Monaco, 'Courier New', monospace; background-color: rgb(250, 250, 250); ">$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">$ ./gtktest<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "></div><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">会显示一个带有一个按钮的窗口，点击按钮以后窗口关闭，命令行显示Hello Ubuntu!</div><br clear="all" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><table class="tablebg" width="100%" cellspacing="1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; background-color: rgb(239, 225, 195); "><tbody style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><td class="row3" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; font-size: 1em; background-color: rgb(247, 244, 239); "><strong class="genmed" style="margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; ">附件:</strong></td></tr><tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><td class="row2" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; font-size: 1em; background-color: rgb(247, 244, 239); "><span class="gensmall" style="margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">文件注释:</strong>&nbsp;GTK测试</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><img src="http://forum.ubuntu.org.cn/download/file.php?id=8967" alt="s2.png" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><span class="gensmall" style="margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; ">s2.png [ 4.79 KiB | 被浏览 34134 次 ]</span>&nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "></td></tr><tr style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><td class="row1" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 4px; padding-right: 4px; padding-bottom: 4px; padding-left: 4px; font-size: 1em; background-color: rgb(247, 244, 239); "><span class="gensmall" style="margin-top: 1px; margin-right: 1px; margin-bottom: 1px; margin-left: 1px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font-size: 1em; "><strong style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">文件注释:</strong>&nbsp;C语言测试</span><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><img src="http://forum.ubuntu.org.cn/download/file.php?id=8968" alt="s1.png" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; "></td></tr></tbody></table></span></p></span>
<img src ="http://www.cppblog.com/welflau/aggbug/132897.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2010-11-07 23:26 <a href="http://www.cppblog.com/welflau/archive/2010/11/07/132897.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu安装OpenSSH </title><link>http://www.cppblog.com/welflau/archive/2010/11/07/132895.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Sun, 07 Nov 2010 15:19:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2010/11/07/132895.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/132895.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2010/11/07/132895.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/132895.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/132895.html</trackback:ping><description><![CDATA[<meta http-equiv="content-type" content="text/html; charset=utf-8"><span  style="font-size: 12px; font-family: 'Lucida Grande', 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 16px; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; ">Ubuntu缺省没有安装SSH Server，使用以下命令安装：&nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">sudo apt-get install openssh-server openssh-client&nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">不过Ubuntu缺省已经安装了ssh client。&nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">可以通过编辑 /etc/ssh/sshd_config 文件来配置 OpenSSH&nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">udo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.original&nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">sudo chmod a-w /etc/ssh/sshd_config.original&nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "><br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">配置完成后重起：&nbsp;<br style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; ">sudo /etc/init.d/ssh restart</span><div><span  style="font-size: 12px; font-family: 'Lucida Grande', 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 16px; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "><br></span></div><div><span  style="font-size: 12px; font-family: 'Lucida Grande', 'Trebuchet MS', Helvetica, Arial, sans-serif; line-height: 16px; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "><meta http-equiv="content-type" content="text/html; charset=utf-8"><a href="http://forum.ubuntu.org.cn/viewtopic.php?f=54&amp;t=121428&amp;start=0">http://forum.ubuntu.org.cn/viewtopic.php?f=54&amp;t=121428&amp;start=0</a></span></div><img src ="http://www.cppblog.com/welflau/aggbug/132895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2010-11-07 23:19 <a href="http://www.cppblog.com/welflau/archive/2010/11/07/132895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【图】Ogre渲染系统</title><link>http://www.cppblog.com/welflau/archive/2010/10/07/128842.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Wed, 06 Oct 2010 18:11:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2010/10/07/128842.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/128842.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2010/10/07/128842.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/128842.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/128842.html</trackback:ping><description><![CDATA[<img src="http://www.cppblog.com/images/cppblog_com/welflau/OgreRenderSystem.jpeg" id="" width="328" height="768" vspace="0" hspace="0" border="" align="baseline" alt="" longdesc=""><br><img src ="http://www.cppblog.com/welflau/aggbug/128842.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2010-10-07 02:11 <a href="http://www.cppblog.com/welflau/archive/2010/10/07/128842.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>人际交往的3大定律</title><link>http://www.cppblog.com/welflau/archive/2010/05/03/114217.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Sun, 02 May 2010 16:27:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2010/05/03/114217.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/114217.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2010/05/03/114217.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/114217.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/114217.html</trackback:ping><description><![CDATA[<h1 id=artibodyTitle>人际交往的3大定律</h1>
<div class=artInfo><span id=art_source><a href="http://www.sina.com.cn/"><u><font color=#0000ff>http://www.sina.com.cn</font></u></a></span>&nbsp;&nbsp;<span id=pub_date>2010年04月30日 11:52</span>&nbsp;&nbsp;<span id=media_name>蓝心心理网</span></div>
<!-- 正文内容 begin -->
<style type=text/css>
.blkContainerSblkCon img{border:1px solid #000;}
</style>
<!-- google_ad_section_start -->
<div class=blkContainerSblkCon id=artibody><!-- 显示图片 -->
<div style="TEXT-ALIGN: center"><img title=人际交往的3大定律 alt=人际交往的3大定律 src="http://i0.sinaimg.cn/ast/2010/0430/201043011502.jpg"></div>
<div style="MARGIN: 5px 0px; TEXT-ALIGN: center">人际交往的3大定律</div>
<p>　　人之不同， 一如其面。各种不同的人都有适合自己的交往方式和自己的交往原则，不论其本人是否能够意识得到。所以，如果想找出一种放之四海而皆准的、和任何脾气任何性格的人交往都适用的程序，就像剧本一样，先说哪句话，后说哪句话，什么话应该配什么动作，什么心情配什么表情，这肯定是不现实的。</p>
<p>　　但是，人与人之间的交往，可以有一种规则，让自己和他人沟通得更加顺畅，更加自如。根据多年咨询的经验，总结出一种心理调适的新思路，姑且称作人际交往的3大定律。</p>
<p>　　<strong>定律一：&#8220;每一个人都比你累&#8221;</strong></p>
<p>　　它的核心是这样两点，一是在于你能否体谅到，别人的劳动是一种辛苦；二是你能否理解别人对你的态度。</p>
<p>　　比如夫妻之间，同样是下班之后，丈夫往往宁可倒在沙发里看电视，也不愿意把家里的东西收拾整齐，妻子却看不惯屋子里乱七八糟的样子，就要自己收拾。但是呢，妻子就难免会心里埋怨：我忙了一天，回到家里还要在这里收拾，你居然在沙发上赖着看电视，怎么就不说来帮一把手呢？可是丈夫也在想了，一天上班我累死累活的，到了家我就没有一点劲儿了，哪像你上班那么轻闲。要不然，怎么还有精力收拾屋子。要是两人都这么想，看着吧，过不了多大会儿，肯定吵起来。</p>
<p>　　可是，如果两人都能换一种思路，又会是什么情况呢？</p>
<p>　　妻子会觉得，他都辛苦一天了，每天上班这么累，还是让他好好休息一会儿吧。家嘛，家不就是让他休息放松的地方嘛。丈夫会想到，她上了一天班，下班回家还要收拾屋子，真是辛苦。这么着吧，反正我收拾过的屋子她也看不上，干脆，我去厨房把饭热了吧。</p>
<p>　　在做家务的不经意中，夫妻间就产生了一种默契和温馨。</p>
<p>　　到父母家聚会，如果想起这一条，你会主动干许多事儿，而且不至于和自己的亲人心生芥蒂；和朋友一齐出游，如果心里常想着这句话，你就会兴高采烈满心轻松地成为一个受朋友们欢迎的人。</p>
<p>　　明白了第一定律的含义，自然会容易理解下面两个推论：</p>
<p>　　<strong>推论一：</strong>如果有人能体谅你的累，这个人必定爱护你，心疼你；如果有人愿意替你累，替你辛苦，说明这个人爱你。</p>
<p>　　<strong>推论二：</strong>如果你能体会到其他人的累，体会到其他人的辛苦和不容易，说明你是个善良的人；如果你愿意去替别人累，去替别人承担辛苦，说明你爱这个人。</p>
<p>　　<strong>定律二：每一个人都比你干得活儿多挣得钱少</strong></p>
<p>　　定律二适用在你的日常工作之中，或者说，它或许应该是你在通过自己努力获得相应的物质或精神报酬时的一条准则。</p>
<p>　　相信你在工作中肯定会有对别人羡慕的时候：&#8220;还是张主任的工作轻松，每天看他不是请客吃饭，就是打球锻炼，上班的时候还可以一个人关在办公室里想干什么就干什么，钱也不少拿，多好啊！&#8221;可是，你想过没有，你羡慕的对象会不会也在心里面羡慕你呢？</p>
<p>　　说不定哪一天，你就会听到张主任亲切地和你唠唠家常：&#8220;小刘啊，还是你们舒服啊，我每天都要陪别人吃饭，连和家里人一起吃晚饭的时间都没有；上班吧，一个人在办公室，也没有人说说话，不像你们还可以说说笑笑的。哎，工作压力太大了。真羡慕你们啊，要是跟你的工作换一换，我就知足了。&#8221;你会不会觉得这是领导在猫哭耗子假慈悲呢？其实不然，这绝对是对方的真实感受。</p>
<p>　　心理学研究发现，人们都有一种把自己的工作和付出以及别人的获得和收入看得比实际情况要多，把自己的获得和收入以及别人的工作和付出看得比实际情况要少的心理趋势。</p>
<p>　　每个人都是一样，会觉得自己的付出太多，自己的获得太少，于是由此而生出许多的不满或是抱怨。其实，想想看，假如每个人都这么想的时候，你的想法与别人不同，你觉得自己的付出相对少，别人的付出比较多，那么，你自然就会不断地自勉，还会真诚地对待别人。</p>
<p>　　第二定律也有两条推论：</p>
<p>　　<strong>推论一：</strong>理解别人干得活多，或者理解别人收入少，都能使别人感动，而且惠而不费。</p>
<p>　　<strong>推论二：</strong>不要再抱怨自己的收入。因为，当你抱怨的时候，你肯定没有在工作。</p>
<p>　　<strong>定律三：每一个人都没有义务帮助你</strong></p>
<p>　　这句话听起来十分冷酷，难道我们身边的每个人都是这样冷漠吗？在我们需要别人援手的时候，我们竟然那么孤立无援？</p>
<p>　　事实上并不是这个样子，这个世界上永远不缺乏好心人和热心人，但是有些时候，可能你所遇到的困难没有被有能力帮助你的好心人看到而已。</p>
<p>　　前些年，某个城市发生了这样一件事儿：一个小姑娘上学途中被人撞倒，伤得很严重，围观的人群中走出一个小伙子，说愿意把姑娘送到医院，但要求小姑娘先出一些辛苦费。小姑娘拿出身上所有的零钱还是不够，答应对方只要通知了自己的父母，肯定会把钱给他。赶到医院的父母在把孩子送进手术室后转身要付钱，小伙子不仅不要，还把零花钱还给了孩子的父母。原来他只是用这种方法证明自己不是肇事者而已。这个小伙子的担心也正反映了一般人的看法：要不是你撞了孩子，你干吗要把孩子送到医院来呢？你没有这个义务啊？</p>
<p>　　与不相识的人交往，人们都会有一种戒备心理，一般地，礼下于人则必有所求，素昧平生那就应该无功不受禄。对于没来由地热心帮助自己的人，有时候难免心里会问个为什么。这也就造成了每个人都充满热心但却担心被拒绝而表现的冷漠。如果你能理解大多数人的这种心理，你就会理解别人为什么没有对你伸出援助之手；如果你相信这个世界早晚会了解你的为人，那么你在出手助人的时候自然落落大方。</p>
<p>　　<strong>第三定律的推论是：</strong></p>
<p>　　<strong>推论一：</strong>如果有人在没有义务的情况下帮助你，那么，这个家伙，可以做，朋友。</p>
<p>　　<strong>推论二：</strong>如果你帮助了别人，心里的快乐就是最大的酬谢，不要计较对方是否会知道，会记住，或者会回报。</p>
<p>　　其实，第一定律说的是家庭和朋友之间的相处之道，第二定律说的是在单位的工作态度和处事方法，第三定律则是讲与陌生人之间的应对。</p>
<p>　　很可能，热情的你会觉得这三条定律看上去太冷，太没有人情味儿，可是，做人，固然要热血酬知己，也应该冷眼观世情。(蓝心网)</p>
<!-- {写进博客等三项功能} --></div>
<!-- google_ad_section_end --><!-- 正文内容 end -->
<img src ="http://www.cppblog.com/welflau/aggbug/114217.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2010-05-03 00:27 <a href="http://www.cppblog.com/welflau/archive/2010/05/03/114217.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DX的渲染管道图</title><link>http://www.cppblog.com/welflau/archive/2009/11/26/pipeline.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Thu, 26 Nov 2009 04:21:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2009/11/26/pipeline.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/101962.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2009/11/26/pipeline.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/101962.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/101962.html</trackback:ping><description><![CDATA[<img height=3716 alt="" src="http://p.blog.csdn.net/images/p_blog_csdn_net/yanonsoftware/288542/o_pipeline-9.0.png" width=2754 border=0><br><a href="http://p.blog.csdn.net/images/p_blog_csdn_net/yanonsoftware/288542/o_pipeline-9.0.png">http://p.blog.csdn.net/images/p_blog_csdn_net/yanonsoftware/288542/o_pipeline-9.0.png</a>
<img src ="http://www.cppblog.com/welflau/aggbug/101962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2009-11-26 12:21 <a href="http://www.cppblog.com/welflau/archive/2009/11/26/pipeline.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>模型编辑器1</title><link>http://www.cppblog.com/welflau/archive/2009/09/12/95995.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Sat, 12 Sep 2009 04:47:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2009/09/12/95995.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/95995.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2009/09/12/95995.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/95995.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/95995.html</trackback:ping><description><![CDATA[<img src="http://www.cppblog.com/images/cppblog_com/welflau/Snap2.jpg" border=0>
<img src ="http://www.cppblog.com/welflau/aggbug/95995.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2009-09-12 12:47 <a href="http://www.cppblog.com/welflau/archive/2009/09/12/95995.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【原创】贴几张最近的工作文档</title><link>http://www.cppblog.com/welflau/archive/2009/01/05/71233.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Mon, 05 Jan 2009 08:53:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2009/01/05/71233.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/71233.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2009/01/05/71233.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/71233.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/71233.html</trackback:ping><description><![CDATA[<p><img height=768 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/a1.jpg" width=566 border=0><br><img height=768 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/a2.jpg" width=581 border=0><br><br><img height=768 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/a3.jpg" width=571 border=0><br><img height=768 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/a4.jpg" width=575 border=0><br><img height=768 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/a5.jpg" width=559 border=0><br><img height=768 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/a6.jpg" width=577 border=0><br>未完。。。</p>
<img src ="http://www.cppblog.com/welflau/aggbug/71233.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2009-01-05 16:53 <a href="http://www.cppblog.com/welflau/archive/2009/01/05/71233.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【原创】【OGRE人门教程】OGRE源码成功编译记081227</title><link>http://www.cppblog.com/welflau/archive/2008/12/28/70570.html</link><dc:creator>weierfu</dc:creator><author>weierfu</author><pubDate>Sun, 28 Dec 2008 09:54:00 GMT</pubDate><guid>http://www.cppblog.com/welflau/archive/2008/12/28/70570.html</guid><wfw:comment>http://www.cppblog.com/welflau/comments/70570.html</wfw:comment><comments>http://www.cppblog.com/welflau/archive/2008/12/28/70570.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/welflau/comments/commentRss/70570.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/welflau/services/trackbacks/70570.html</trackback:ping><description><![CDATA[&nbsp;
<p><span>OGRE</span><span>源码成功编译记</span><span>081227</span></p>
<p><strong><span>Made by welflau</span></strong></p>
<p><strong><span>1 </span></strong><strong><span>下载最新的</span><span>OGRE</span></strong><strong><span>源码包</span><st1:chsdate Year="1899" Month="12" Day="30" IsLunarDate="False" IsROCDate="False" w:st="on"><span>1.6.0</span></st1:chsdate></strong></p>
<p>&nbsp;<img height=519 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122701.JPG" width=612 border=0></p>
<p>&nbsp;<strong><span>2 </span></strong><strong><span>直接解压到</span><span>D</span></strong><strong><span>盘根目录下<br><img height=713 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122702.JPG" width=514 border=0><br><br>&nbsp; </p>
<p><strong><span>3 </span></strong><strong><span>打开</span><span>sln </span></strong><strong><span>我装是的</span><span>VS2005</span></strong></p>
</span></strong>
<p><img height=56 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122703.JPG" width=187 border=0>&nbsp;<br><br></p>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">打开后</span></p>
<p><img height=708 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122704.JPG" width=1024 border=0></p>
<p><strong><span>4 </span><span>编译生成</span><span>OgreMain</span></strong><br><img height=177 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122705.JPG" width=379 border=0><br><br>&nbsp;&nbsp;&nbsp; </p>
<p><strong><span>5 </span></strong><strong><span>会出错，还没下</span><span>Dependencies</span></strong></p>
<p><span>因为链接器中显示了有<strong>附加库</strong></span></p>
<p><img height=461 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122706.JPG" width=674 border=0><br><span><br><strong>&nbsp; </strong></p>
<p><strong><span>6 下载</span><span>ogre-dependencies 注意要下载最新版</span></strong></p>
<p><span><strong>下载地址：</strong></span></p>
<p><span><strong>http://sourceforge.net/project/showfiles.php?group_id=2997</strong></span></p>
<br><strong><img height=708 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122707.JPG" width=1024 border=0><br><br></strong>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">下一个页面选择</span></p>
<img height=323 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122708.JPG" width=630 border=0><br>&nbsp;
<p><strong><span>7 </span></strong><strong><span>解压到</span><span>D:\ogre-l.6.0\ogre</span></strong></p>
<br><img height=629 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122709.JPG" width=531 border=0><br><br>&nbsp;
<p><span>解压完后，再重新编译生成</span></p>
<p><span>OgreMain</span><span>编译得要一段时间</span></p>
<p><span>而且编译后</span><span>Obj</span><span>文件有</span><st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1.6" UnitName="g"><span>1.6G</span></st1:chmetcnv><span>左右的大小，所以编译之前要保证你的硬盘有足够的空间</span></p>
<p><span>【注意】还有一个</span><span>Samples</span><span>文件夹也要覆盖到</span><span>Ogre</span><span>目录下</span></p>
<img height=99 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122710.jpg" width=443 border=0><br><br>&nbsp;
<p><span>里面是执行时所需的</span><span>dll</span><span>文件</span></p>
<p><span>终于编译完后，不过还是有错，少文件</span></p>
<p><img height=119 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122711.JPG" width=983 border=0></p>
<p>&nbsp; </p>
<p><span>我去</span><span>&nbsp;Dependencies\include\zzip </span><span>目录下看的确没这个文件</span></p>
<p><span>我又下了</span><span>Dependencies</span><span>其他版本</span><span>OgreDependencies_VC8SP1_Eihort_20070323</span></p>
<p><span>发现有该文件</span></p>
<img height=116 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122712.JPG" width=682 border=0><br>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: left; mso-outline-level: 1" align=left><strong style="mso-bidi-font-weight: normal"><span lang=EN-US><br>8 </span></strong><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可能是版本不对再到</span><span lang=EN-US>OGRE</span></strong><strong style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">官方网站<br></span></strong><span lang=EN-US>http://www.ogre3d.org/index.php?option=com_content&amp;task=view&amp;id=412&amp;Itemid=132<br><br><img height=708 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122713.JPG" width=1024 border=0></span></p>
<br>&nbsp;
<p><span>下载红框所示那个包：</span><strong><span>OgreDependencies_VC8SP1_Eihort_20071227.zip</span></strong></p>
<p><span>解压到</span><span>OGRE</span><span>目录</span><strong><span>D:\ogre-l.6.0\ogre</span></strong><span>下到重新覆盖一遍</span></p>
<p><span>再编译生成</span></p>
<p><span>终于成功生成</span></p>
<img height=708 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122714.JPG" width=1024 border=0><br><br>
<p class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">生成的</span><span lang=EN-US>lib</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">和</span><span lang=EN-US>dll</span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">如下图</span></p>
<img height=163 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122715.JPG" width=924 border=0><br><br>&nbsp; <br>
<p><span>其中</span><span>OgreMain</span><span>生成的目标文件有</span><st1:chmetcnv w:st="on" TCSC="0" NumberType="1" Negative="False" HasSpace="False" SourceValue="1.53" UnitName="g"><span>1.53G<br><img height=470 alt="" src="http://www.cppblog.com/images/cppblog_com/welflau/08122716.JPG" width=475 border=0></span></st1:chmetcnv></p>
<br><u><font color=#810081>&nbsp;</font></u>
<p><a href="http://hi.baidu.com/welflau/blog/item/e15f8d01fb7defd1267fb525.html" target=_blank>【游戏开发】【原创教程连载】WelfGame【第7讲】(08120803按钮颜色可控)</a></p>
<p><a href="http://hi.baidu.com/welflau/blog/item/d38833db97093a61d1164e5a.html" target=_blank>【游戏开发】【原创教程连载】WelfGame【第6讲】(08120702加入皮肤对话框)</a></p>
<p><a href="http://hi.baidu.com/welflau/blog/item/1d092aa4c7d361f09152ee5f.html" target=_blank><font color=#0000ff>【游戏开发】【原创教程连载】WelfGame【第5讲】(WelfGame(08120302三维操作)</font></a></p>
<p><a href="http://hi.baidu.com/welflau/blog/item/1553b312c711abc9c2fd7853.html" target=_blank><font color=#0000ff>【游戏开发】【原创教程连载】WelfGame【第4讲】(08120301导入三维数据文件 .x）</font></a></p>
<p><a href="http://hi.baidu.com/welflau/blog/item/309af8d3d5d142d8a8ec9a2c.html" target=_blank>【游戏开发】WelfGame【第3讲】(08120203图像透明及颜色)</a></p>
<p><a href="http://hi.baidu.com/welflau/blog/item/9c589716170efc56f2de325b.html" target=_blank><font color=#0000ff>【游戏开发】WelfGame【第2讲】(08120202绘制文字和图像）</font></a></p>
<p><a href="http://hi.baidu.com/welflau/blog/item/1b17032320bb05499358075e.html" target=_blank><font color=#0000ff>【游戏开发】原创：我的游戏开发学习过程（连载中...）(第一讲)</font></a></p>
</span>
<img src ="http://www.cppblog.com/welflau/aggbug/70570.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/welflau/" target="_blank">weierfu</a> 2008-12-28 17:54 <a href="http://www.cppblog.com/welflau/archive/2008/12/28/70570.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>