﻿<?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++博客-程序让生活更美好-随笔分类-Other</title><link>http://www.cppblog.com/cc/category/583.html</link><description>半亩方塘 天光云影</description><language>zh-cn</language><lastBuildDate>Thu, 07 Feb 2013 03:30:00 GMT</lastBuildDate><pubDate>Thu, 07 Feb 2013 03:30:00 GMT</pubDate><ttl>60</ttl><item><title>在windows环境中配置go语言开发环境</title><link>http://www.cppblog.com/cc/archive/2013/02/07/197762.html</link><dc:creator>北风之神007</dc:creator><author>北风之神007</author><pubDate>Thu, 07 Feb 2013 02:13:00 GMT</pubDate><guid>http://www.cppblog.com/cc/archive/2013/02/07/197762.html</guid><wfw:comment>http://www.cppblog.com/cc/comments/197762.html</wfw:comment><comments>http://www.cppblog.com/cc/archive/2013/02/07/197762.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cc/comments/commentRss/197762.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cc/services/trackbacks/197762.html</trackback:ping><description><![CDATA[<br />  <p style="line-height:150%"><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">参考</span><span style="font-size:12.0pt;line-height:150%"><a href="http://www.cnblogs.com/MikeZhang/archive/2012/02/10/nppRunGo.html">http://www.cnblogs.com/MikeZhang/archive/2012/02/10/nppRunGo.html</a></span></p>  <p style="line-height:150%"><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">最近</span><span style="font-size:12.0pt;line-height:150%">google</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">的</span><span style="font-size:12.0pt;line-height:150%">go</span><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">语言流行程度越来越大了，学着别人写的内容自己在</span><span style="font-size:12.0pt; line-height:150%">windows</span><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">下搭建了一个简单的开发环境，记录在这里，如果需要参考的可以借鉴。</span></p>  <p style="margin-left:21.0pt;text-indent:-21.0pt;"><strong><span style="font-size:14.0pt;">一、<span style="font-weight: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size:14.0pt;font-family:宋体;">下载编译器</span></strong><strong></strong></p>  <p style="line-height:150%"><span style="font-family:宋体;">下载</span>go<span style="font-family:宋体;">语言的开发工具可以到</span><a href="http://code.google.com/p/gomingw/downloads/list">http://code.google.com/p/gomingw/downloads/list</a><span style="font-family:宋体;">去下载，这里列出了当前最新的版本。</span></p>  <p style="line-height:150%"><span style="font-family:宋体;">我选择下载</span><span style="font-size:10.0pt;line-height:150%;font-family:&quot;Arial&quot;,&quot;sans-serif&quot;; background:white"><a href="http://gomingw.googlecode.com/files/gowin386_release.r60.3.zip">http://gomingw.googlecode.com/files/gowin386_release.r60.3.zip</a></span></p>  <p>&nbsp;</p>  <p><span style="font-family:宋体;">下载完毕之后，就是一个压缩包，我们把它解压缩，最终解压缩后的目录以</span><strong><span style="font-size:16.0pt; color:#124AE8">go</span></strong><span style="font-family:宋体;">命名。</span></p>  <p style="margin-left:21.0pt;text-indent:-21.0pt;"><strong><span style="font-size:14.0pt;">二、<span style="font-weight: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size:14.0pt;font-family:宋体;">配置环境变量</span></strong><strong></strong></p>  <p style="line-height:150%;"><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">编译工具下载之后解压缩，就是一个目录，后期我们需要在命令行或者工具中调用编译程序，所以需要把编译工具的路径以及相关属性配置进系统环境变量。</span></p>  <p style="line-height:150%;">&nbsp;</p>  <p style="line-height:150%;"><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">需要设定的环境变量如下：</span></p>  <table border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: none;">  <tbody><tr>   <td width="568" valign="top" style="width: 426.1pt; border: 1pt solid windowtext; padding: 0cm 5.4pt;">   <div style="border:none;border-left:solid #6CE26C 2.25pt;   padding:0cm 0cm 0cm 0cm;background:white;margin-left:18.0pt;margin-right:   0cm">   <p align="left" style="margin-left: 18pt; text-indent: -18pt; line-height: 13.5pt; border: none; padding: 0cm; background-position: initial initial; background-repeat: initial initial;"><span style="font-size:9.0pt;font-family:Consolas;color:#5C5C5C;">1.&nbsp;</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">set&nbsp;</span><span style="font-size:9.0pt;   font-family:Consolas;color:red;border:none windowtext 1.0pt;padding:0cm;">goroot</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">=</span><span style="font-size:9.0pt;   font-family:Consolas;color:blue;border:none windowtext 1.0pt;padding:0cm;">go</span><span style="font-size:9.0pt;font-family:宋体;color:blue;   border:none windowtext 1.0pt;padding:0cm;">编译程序主目录全路径</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">&nbsp;&nbsp;&nbsp;   &nbsp;&nbsp;</span></p>   <p align="left" style="margin-left: 18pt; text-indent: -18pt; line-height: 13.5pt; background-color: #f8f8f8; border: none; padding: 0cm; background-position: initial initial; background-repeat: initial initial;"><span style="font-size:9.0pt;font-family:Consolas;color:#5C5C5C;">2.&nbsp;</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">set&nbsp;</span><span style="font-size:9.0pt;   font-family:Consolas;color:red;border:none windowtext 1.0pt;padding:0cm;">goarch</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">=</span><span style="font-size:9.0pt;   font-family:Consolas;color:blue;border:none windowtext 1.0pt;padding:0cm;">386</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">&nbsp;&nbsp; &nbsp;&nbsp;</span></p>   <p align="left" style="margin-left: 18pt; text-indent: -18pt; line-height: 13.5pt; border: none; padding: 0cm; background-position: initial initial; background-repeat: initial initial;"><span style="font-size:9.0pt;font-family:Consolas;color:#5C5C5C;">3.&nbsp;</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">set&nbsp;</span><span style="font-size:9.0pt;   font-family:Consolas;color:red;border:none windowtext 1.0pt;padding:0cm;">path</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">=</span><span style="font-size:9.0pt;   font-family:Consolas;color:blue;border:none windowtext 1.0pt;padding:0cm;">%goroot%</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">/bin &nbsp;&nbsp;</span></p>   <p align="left" style="margin-left: 18pt; text-indent: -18pt; line-height: 13.5pt; background-color: #f8f8f8; border: none; padding: 0cm; background-position: initial initial; background-repeat: initial initial;"><span style="font-size:9.0pt;font-family:Consolas;color:#5C5C5C;">4.&nbsp;</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">set&nbsp;</span><span style="font-size:9.0pt;   font-family:Consolas;color:red;border:none windowtext 1.0pt;padding:0cm;">goos</span><span style="font-size: 9pt; font-family: Consolas; border: 1pt none windowtext; padding: 0cm;">=</span><span style="font-size:9.0pt;   font-family:Consolas;color:blue;border:none windowtext 1.0pt;padding:0cm;">windows</span></p>   </div>   </td>  </tr> </tbody></table>  <p style="line-height:150%;"><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">其中</span><span style="font-size:12.0pt;line-height:150%">go</span><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">目录全路径是我们前面解压缩后的以</span><strong><span style="font-size:16.0pt;line-height:150%;color:#124AE8">go</span></strong><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">命名的目录，我们这里假设为</span><strong><em><span style="font-size:14.0pt;line-height:150%;color:#124AE8">c:\go</span></em></strong></p>  <p style="line-height:150%"><strong><span style="font-size:12.0pt;line-height:150%">1</span></strong><strong><span style="font-size:12.0pt;line-height: 150%;font-family:宋体;">、在</span></strong><strong><span style="font-size:12.0pt; line-height:150%">xp</span></strong><strong><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">环境下：</span></strong><strong></strong></p>  <p style="line-height:150%"><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">在桌面<strong><span style="color:#124AE8">我的电脑</span></strong>右键，查看属性，弹出系统属性对话框，如下：<br /></span></p>  <p style="line-height:150%"><img border="0" width="348" height="407" src="http://www.cppblog.com/images/cppblog_com/cc/201302/1.png" v:shapes="图片_x0020_1" alt="" /></p>  <p style="line-height:150%"><span style="font-family:宋体;">新建环境变量：</span></p>  <p style="line-height:150%"><img border="0" width="417" height="168" src="http://www.cppblog.com/images/cppblog_com/cc/201302/2.png" v:shapes="_x0000_i1026" alt="" /></p>  <p style="line-height:150%"><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">在</span><span style="font-size:12.0pt;line-height:150%">vista</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">和</span><span style="font-size:12.0pt;line-height:150%">win</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">环境下：</span></p>  <p style="line-height:150%"><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">在桌面<strong><span style="color:#124AE8">计算机</span></strong>右键，查看属性，打开系统信息窗口，再点击&#8220;高级系统设置&#8221;，弹出系统属性对话框，对话框与</span><span style="font-size:12.0pt;line-height:150%">XP</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">类似，具体设置参考</span><span style="font-size:12.0pt;line-height:150%">XP</span><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">系统设置部分。</span> </p>  <p style="line-height:150%">&nbsp;</p>  <p style="margin-left:21.0pt;text-indent:-21.0pt;"><strong><span style="font-size:14.0pt;">三、<span style="font-weight: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size:14.0pt;font-family:宋体;">配置开发工具</span></strong><strong></strong></p>  <p style="line-height:150%"><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">开发工具，我这里推荐两张，一种是</span><span style="font-size:12.0pt; line-height:150%">Notepad++</span><span style="font-size:12.0pt;line-height: 150%;font-family:宋体;">，一种是集成开发环境</span><span style="font-size:12.0pt;line-height:150%">LiteIDE</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">。</span></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;line-height: 150%;"><span style="font-size:12.0pt;line-height:150%;">1．</span><span style="font-size:12.0pt;line-height:150%">Notepad++ </span></p>  <p style="margin-left:18.0pt;line-height:150%"><span style="font-size:12.0pt;line-height:150%">Notepad++</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">的主页为</span><span style="font-size:12.0pt;line-height:150%"><a href="http://notepad-plus-plus.org/">http://notepad-plus-plus.org/</a></span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">，大家可以上去自己下最新的版本。</span></p>  <p style="margin-left:18.0pt;line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">程序的安装与普通程序没有区别，安装完毕之后就可以打开</span><span style="font-size:12.0pt;line-height:150%">notepad++</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">。</span></p>  <p style="margin-left:18.0pt;line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">默认情况下，</span><span style="font-size:12.0pt;line-height:150%">notepad</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">是不带</span><span style="font-size: 12.0pt;line-height:150%">go</span><span style="font-size:12.0pt;line-height: 150%;font-family:宋体;">语言的代码解释器的，也不带便捷编译功能。所以我们需要下载安装</span><span style="font-size:12.0pt;line-height:150%">go</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">语言的代码解释器，并进行适当配置。</span></p>  <p style="margin-left:18.0pt;text-indent:18.0pt;line-height:150%"><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">操作步骤如下：</span></p>  <p style="text-indent:30.0pt; line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family: 宋体;">（</span><span style="font-size:12.0pt;line-height:150%">1</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">）下载语言解析模板</span></p>  <p style="margin-left:59.25pt;line-height:150%"><strong><span style="font-size:16.0pt; line-height:150%;color:#124AE8">go</span></strong><span style="font-family:宋体;">语言解析模板：</span><a href="http://notepad-plus.sourceforge.net/commun/userDefinedLang/go.zip" target="_blank">http://notepad-plus.sourceforge.net/commun/userDefinedLang/go.zip</a>&nbsp;&nbsp;&nbsp; </p>  <p style="margin-left:18.0pt;line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">下载之后，解压缩，里面有&#8220;</span><span style="font-size:12.0pt;line-height:150%">go.xml</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">&#8221;，&#8220;</span><span style="font-size: 12.0pt;line-height:150%">userDefineLang_Go.xml</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">&#8221;，&#8220;</span><span style="font-size: 12.0pt;line-height:150%">README</span><span style="font-size:12.0pt;line-height: 150%;font-family:宋体;">&#8221;三个文件，我们重点关注前面两个文件。</span></p>  <p style="margin-left:18.0pt;text-indent:18.0pt;line-height:150%"><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">（</span><span style="font-size:12.0pt;line-height:150%">2</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">）将文件</span><span style="font-size:12.0pt;line-height:150%">userDefineLang_Go.xml</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">内容</span><span style="font-size:12.0pt;line-height:150%">copy</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">至</span><span style="font-size:12.0pt; line-height:150%">Application Data</span><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">下</span><span style="font-size:12.0pt;line-height:150%">Notepad++</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">目录的</span><span style="font-size:12.0pt;line-height:150%">userDefineLang.xml</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">中，如果没有该文件，则直接</span><span style="font-size:12.0pt;line-height:150%">userDefineLang_Go.xml</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">文件名改成</span><span style="font-size:12.0pt;line-height:150%">userDefineLang.xml</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">复制过去。</span><span style="font-size:12.0pt;line-height:150%"><br /> </span><span style="font-family:宋体;">　　</span><strong><span style="font-size:14.0pt;line-height:150%;color:#124AE8">XP:</span></strong> C:\Documents and Settings\<strong><span style="color:#124AE8">[username]</span></strong>\Application Data\Notepad++<br /> <span style="font-family:宋体;">　</span><strong><span style="font-size: 14.0pt;line-height:150%;font-family:宋体;color:#124AE8">　</span></strong><strong><span style="font-size:14.0pt;line-height:150%;color:#124AE8">Vista/Win7 : </span></strong>C:\Users\<strong><span style="color:#124AE8">[username]</span></strong>\AppData\Roaming\Notepad++</p>  <p style="line-height:150%">&nbsp;<span style="font-size:12.0pt;line-height:150%;font-family:宋体;">拷贝过去之后，打开</span><span style="font-size:12.0pt;line-height:150%">userDefineLang.xml</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">文件，把文件前面与最后的&#8220;</span><span style="font-size:12.0pt;line-height:150%">&lt;!-- &lt;NotepadPlus&gt; --&gt;</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">&#8221;和&#8220;</span><span style="font-size:12.0pt;line-height:150%">&lt;!-- &lt;/NotepadPlus&gt; --&gt;</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">&#8221;分别改成&#8220;</span><span style="font-size:12.0pt;line-height:150%">&lt;NotepadPlus&gt;</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">&#8221;和&#8220;</span><span style="font-size:12.0pt;line-height:150%">&lt;/NotepadPlus&gt;</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">&#8221;</span><span style="font-size:12.0pt;line-height:150%">,</span><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">改完保存之后</span></p>  <p style="text-indent:24.0pt; line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family: 宋体;">（</span><span style="font-size:12.0pt;line-height:150%">3</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">）将</span><span style="font-size:12.0pt;line-height:150%">go.xml</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">文件</span><span style="font-size:12.0pt; line-height:150%">copy</span><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">至</span><span style="font-size:12.0pt;line-height:150%">notepad++</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">安装目录下的</span><span style="font-size:12.0pt;line-height:150%">plugins\APIs</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">目录（例如：</span><span style="font-size:12.0pt;line-height:150%">D:\Program Files\Notepad++\plugins\APIs</span><span style="font-size:12.0pt;line-height: 150%;font-family:宋体;">）；</span></p>  <p style="text-indent:24.0pt; line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family: 宋体;">（</span><span style="font-size:12.0pt;line-height:150%">4</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">）重启</span><span style="font-size:12.0pt;line-height:150%">notepad++</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">程序，在语言菜单下可以看见</span><strong><span style="font-size:12.0pt;line-height:150%;color:#124AE8">go</span></strong><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">。</span></p>  <p style="text-indent:24.0pt; line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family: 宋体;">（</span><span style="font-size:12.0pt;line-height:150%">5</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">）设定快捷编译命令。</span></p>  <p style="text-indent:36.0pt;"><span style="font-size:12.0pt;font-family:宋体;">打开</span><span style="font-size:12.0pt">Notepad++</span><span style="font-size:12.0pt;font-family:宋体;">程序之后，运行</span><span style="font-size: 12.0pt">F5</span><span style="font-size:12.0pt;font-family:宋体;">命令</span></p>  <p style="text-indent:30.0pt;"><span style="font-size:12.0pt;font-family:宋体;">在弹出的对话框中输入以下内容：&#8220;</span><span style="font-size:12.0pt">cmd /k 8g.exe -o tmp.8 "$(FULL_CURRENT_PATH)" &amp; 8l.exe -o tmp.exe tmp.8 &amp; del tmp.8 &amp; tmp.exe &amp; PAUSE &amp; del tmp.exe &amp; EXIT</span><span style="font-size:12.0pt;font-family:宋体;">&#8221;。</span><span style="font-size:12.0pt"><br /> &nbsp;&nbsp; </span><span style="font-size:12.0pt; font-family:宋体;">保存为</span><span style="font-size:12.0pt">"Run Go"</span><span style="font-size:12.0pt;font-family:宋体;">，并设置</span><span style="font-size: 12.0pt">Ctrl+F6</span><span style="font-size:12.0pt;font-family:宋体;">为快捷键。</span></p>  <p style="text-indent:30.0pt;"><span style="font-size:12.0pt;font-family:宋体;">（</span><span style="font-size:12.0pt">6</span><span style="font-size:12.0pt;font-family:宋体;">）测试编译</span></p>  <p style="text-indent:6.0pt;"><span style="font-size:12.0pt;font-family:宋体;">我们使用</span><span style="font-size: 12.0pt">notepad++</span><span style="font-size:12.0pt;font-family:宋体;">新建一个</span><span style="font-size:12.0pt">hello.go</span><span style="font-size:12.0pt; font-family:宋体;">文件，在其中输入以下代码。</span></p>  <table border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: none;">  <tbody><tr>   <td width="568" valign="top" style="width: 426.1pt; border: 1pt solid windowtext; padding: 0cm 5.4pt;">   <p align="left" style="line-height: 11.25pt; background-color: #f5f5f5; background-position: initial initial; background-repeat: initial initial;"><span style="font-size:9.0pt;font-family:   &quot;Courier New&quot;;color:#333333;">package main<br />   <br />   import "fmt"<br />   <br />   func main() {<br />   &nbsp;&nbsp;&nbsp; fmt.Println("Hello World</span><span style="font-size:9.0pt;font-family:宋体;Courier New&quot;;Courier New&quot;;Courier New&quot;;   color:#333333;">！</span><span style="font-size:9.0pt;font-family:&quot;Courier New&quot;;color:#333333;">")<br />   }</span></p>   <p>&nbsp;</p>   </td>  </tr> </tbody></table>  <p><span style="font-size:12.0pt;font-family:宋体;">再按&#8220;</span><span style="font-size:12.0pt">Ctrl+F6</span><span style="font-size:12.0pt; font-family:宋体;">&#8221;快捷键。</span></p>  <p><span style="font-size:12.0pt;font-family:宋体;">弹出窗口显示</span><span style="font-size:12.0pt"><img border="0" width="165" height="74" src="http://www.cppblog.com/images/cppblog_com/cc/201302/3.png" v:shapes="_x0000_i1027" alt="" /></span><span style="font-size:12.0pt; font-family:宋体;">，证明环境配置完毕。</span></p>  <p><span style="font-size:12.0pt;font-family:宋体;">我们也可以在</span><span style="font-size:12.0pt">dos</span><span style="font-size:12.0pt;font-family: 宋体;">命令窗口中执行编译运行命令。</span></p>  <table border="1" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: none;">  <tbody><tr>   <td width="568" valign="top" style="width: 426.1pt; border: 1pt solid windowtext; padding: 0cm 5.4pt;">   <p><span style="font-size:12.0pt;font-family:宋体;">编译：</span><span style="font-size:12.0pt">8g -o hello.8 hello.go<br />   </span><span style="font-size:12.0pt;font-family:宋体;">链接：</span><span style="font-size:12.0pt">8l -o hello.exe hello.8<br />   </span><span style="font-size:12.0pt;font-family:宋体;">运行：</span><span style="font-size:12.0pt">hello.exe</span></p>   </td>  </tr> </tbody></table>  <p>&nbsp;</p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;line-height: 150%;"><span style="font-size:12.0pt;line-height:150%;">2．</span><span style="font-size:12.0pt;line-height:150%">LiteIDE</span></p>  <p style="line-height:150%"><span style="font-size: 12.0pt;line-height:150%;">LiteIDE</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">是</span><span style="font-size:12.0pt;line-height:150%;">go</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">语言开发一个集成环境，可以到</span></p>  <p style="line-height:150%"><span style="font-size: 12.0pt;line-height:150%"><a href="http://code.google.com/p/golangide/downloads/list">http://code.google.com/p/golangide/downloads/list</a></span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">去查看最新版本。</span></p>  <p style="line-height:150%"><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">我们这里下载</span><span style="font-size:12.0pt;line-height: 150%"><a href="http://golangide.googlecode.com/files/liteidex12.2.windows.hg586.7z">LiteIDE12.2_windows<span style="font-family:宋体;">版本</span></a></span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">。</span><span style="font-size:12.0pt; line-height:150%"> </span></p>  <p style="line-height:150%"><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">这个工具的配置在下载处有文档说明，这里就不详细介绍了。</span></p>  <p style="line-height:150%">&nbsp;</p>  <p style="line-height:150%"><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">希望写的内容对大家有帮助。</span></p><img src ="http://www.cppblog.com/cc/aggbug/197762.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cc/" target="_blank">北风之神007</a> 2013-02-07 10:13 <a href="http://www.cppblog.com/cc/archive/2013/02/07/197762.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>UNIX下编译SQLite3.3.6 </title><link>http://www.cppblog.com/cc/archive/2009/09/18/96655.html</link><dc:creator>北风之神007</dc:creator><author>北风之神007</author><pubDate>Fri, 18 Sep 2009 09:41:00 GMT</pubDate><guid>http://www.cppblog.com/cc/archive/2009/09/18/96655.html</guid><wfw:comment>http://www.cppblog.com/cc/comments/96655.html</wfw:comment><comments>http://www.cppblog.com/cc/archive/2009/09/18/96655.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cc/comments/commentRss/96655.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cc/services/trackbacks/96655.html</trackback:ping><description><![CDATA[<span style="FONT-SIZE: 14pt">&nbsp; 虽然现在最新的版本已经新了不少，不过这个功能也可以了，刚好需要在HPUX，AIX以及Solaris都使用它，Redhat下面自带，所以在UNIX下面要编译了一下，这里把Makefile文件做了一些调整，编译通过了。<br><br>解压缩之后不需要再执行 Configure命令了，直接make就可以了，最后会在当前目录下的<strong style="COLOR: #3366ff">.libs</strong>中生成相关的库，连接程序的时候加上这些库就可以了。<br><br>&nbsp;&nbsp;&nbsp;<u>&nbsp;</u><a href="http://www.cppblog.com/Files/cc/sqlite-3.3.6_aix.tar.gz.zip"><u>SQLite3.3.6 下载</u>&nbsp;</a> （<strong style="COLOR: #ff0000">AIX 5.2</strong> &nbsp;XLC++V7测试通过）<br>&nbsp;&nbsp;&nbsp; <a href="http://www.cppblog.com/Files/cc/sqlite-3.3.6_HPUX.tar.gz.zip"><u>SQLite3.3.6 下载</u>&nbsp;</a> （<strong style="COLOR: #ff0000">HPUX 11.23</strong>&nbsp; aCC测试通过）</span><img src ="http://www.cppblog.com/cc/aggbug/96655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cc/" target="_blank">北风之神007</a> 2009-09-18 17:41 <a href="http://www.cppblog.com/cc/archive/2009/09/18/96655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重装系统后ORACLE的恢复的几种方法(转载)</title><link>http://www.cppblog.com/cc/archive/2009/08/19/93812.html</link><dc:creator>北风之神007</dc:creator><author>北风之神007</author><pubDate>Wed, 19 Aug 2009 04:48:00 GMT</pubDate><guid>http://www.cppblog.com/cc/archive/2009/08/19/93812.html</guid><wfw:comment>http://www.cppblog.com/cc/comments/93812.html</wfw:comment><comments>http://www.cppblog.com/cc/archive/2009/08/19/93812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cc/comments/commentRss/93812.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cc/services/trackbacks/93812.html</trackback:ping><description><![CDATA[文章出自：http://www.goceanedu.com.cn/Read_1861.htm <br><br>我的电脑突然挂了，不得不重装系统，不过我的ORACLE装在了D盘，所有的文件都还在，我相信一定能够恢复，直到搞定工作，我才开始整我的数据库，花了两天时间，终于恢复了，庆祝一下，同时总结一下，希望有遇到同样问题的朋友能够快速搞定此类问题 <br><br>第一种： <br>首先，备份数据库(X:\oracle\oradata)下的数据文件，重新命名即可(否则装数据库的时候会提示sid已存在)。重新安装数据库，当然数据库的名字就是你要恢复的名字。安装完成后，打开控制面板，停止oracle的服务。把(X:\oracle\oradata)下新生成的文件改名，把原先目录下的文件恢复名字。再重新启动oracle服务和监听。用sys/as dba 登陆数据库，可能会提示权限不够（ora-01031）修改（X:\oracle\ora92\network\admin )文件夹下的sqlnet.ora文件，添加SQLNET.AUTHENTICATION_SERVICES= (NTS)，增加权限。登陆进去后，打开table提示不能打开。打开common页，执行命令alert database open；这时再刷新table，发现原先的表可以打开了。恢复成功了。再用原先数据库的普通用户进入。发现一切正常。至此，大功告成。 <br><br>第二种：1、首先，将原来的ORACLE文件夹改名，原来的路径是D:/oracle。我暂时改成D:/oracle_old。找来ORACLE（我用的是ORACLE 9I）安装光盘，将ORACLE安装在原来安装的目录下，这样恢复起来更加方便，主要是注册表的内容不用修改。 2、安装完了之后，系统中又有一个可以使用的ORACLE了。这个时候要做的就是将原来的文件和数据恢复过来。第一步，先关闭ORACLE的所有已经启动的项目，在&#8220;服务&#8221;里面逐一关闭。然后，将安装目录改名。我现在用的是D:/oracle。改成D:/oracle_new。再将D:/oracle_old改成D:/oracle。 这样理论上说从物理层面恢复了ORACLE了。但是我们发现，现在还不能启动ORACLE的监听程序和服务程序。我们还要从逻辑上解决。 <br>3、在dos环境下执行一个删除命令：oradim -delete -sid mm，其中mm为创建oracle时候创建的实例 建议执行这个命令后重新启动机器，重启后就可以建立和原来实例名相同的实例。当然你懒，不重新启动也可以，但是你的实例名就不能和原来的一样了。 <br>4、在dos环境下执行命令 oradim -new -sid mm -startmode a -pfile "D:\oracle\admin\mm\pfile\initmm.ora "创建一个新的实例，其中 &#8220;mm&#8220;为新数据库的名称。 <br>5、启动服务，先打开数据库，然后可以用以前的用户名和密码登陆进去。 要补充的是，一般的ORACLE数据库的监听程序都是用电脑的名称来识别地址的，而不是127.0.0.1或者localhost。所以，如果我们安装系统的时候用的是不同的电脑名称（比如我原来用的是wm_mm。重新安装后用的是wenming_mm），那么我们还有一个工作要做，就是修改文件 listener.ora。将里面的相关的东西改过来就可以了。 <br>需要耐心、细心，可能在一步里有一个细小的差别就会出些古怪的错误提示，有时需要根据错误提示采取策略，总之原理是，先装一个一模一样的ORACLE，安装目录、数据库名称都一样，这样保证注册表里不用更改；再覆盖物理文件，最后重新实例化，打开数据库就可以进去了。 <br><br>注：恢复必须要有以下文件 a、初始化参数文件INIT.ORA b、所有数据文件 .dbf c、所有重做日志文件（联机日志、归档日志）redo d、所有控制文件 crtl e、internal密码文件 <br><br><img src ="http://www.cppblog.com/cc/aggbug/93812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cc/" target="_blank">北风之神007</a> 2009-08-19 12:48 <a href="http://www.cppblog.com/cc/archive/2009/08/19/93812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Broadcom NetXtrem II网卡Linux安装指南（转载）</title><link>http://www.cppblog.com/cc/archive/2008/05/29/51494.html</link><dc:creator>北风之神007</dc:creator><author>北风之神007</author><pubDate>Thu, 29 May 2008 09:01:00 GMT</pubDate><guid>http://www.cppblog.com/cc/archive/2008/05/29/51494.html</guid><wfw:comment>http://www.cppblog.com/cc/comments/51494.html</wfw:comment><comments>http://www.cppblog.com/cc/archive/2008/05/29/51494.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cc/comments/commentRss/51494.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cc/services/trackbacks/51494.html</trackback:ping><description><![CDATA[<div class=postText>
<p align=center><strong><font face=宋体 color=#000080 size=4>Broadcom NetXtrem II网卡Linux安装指南<br></font></strong></p>
<p>&nbsp;
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr vAlign=top>
            <td width="100%" bgColor=#ffffff colSpan=2><strong><font face=宋体></font></strong><strong><font face=宋体>适用机型:</font></strong></td>
        </tr>
        <tr vAlign=top>
            <td width="100%" colSpan=2><strong><font face=宋体 color=#000080>所有BladeCenter HS21; 所有BladeCenter LS21; 所有BladeCenter LS41; 所有System x3550; 所有System x3650; 所有System x3655; 所有System x3755</font></strong></td>
        </tr>
    </tbody>
</table>
<br>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
    <tbody>
        <tr vAlign=top>
            <td width="100%" bgColor=#ffffff colSpan=2><strong><font face=宋体>文档内容：</font></strong></td>
        </tr>
    </tbody>
</table>
<br><font face=宋体>Broadcom NetXtreme II GbE网卡驱动有两种格式：source RPM 和tar格式。文件名分别为bnx2-&lt;version&gt;.src.rpm 和 bnx2-&lt;version&gt;.tar.gz</font><br><font face=宋体>下载地址：http://www-1.ibm.com/support/docview.wss?uid=psg1MIGR-64538</font><br><br><strong><font face=宋体>Source RPM 驱动包的安装步骤</font></strong><br><font face=宋体>=============================</font><br><font face=宋体>1. 安装source RPM包：</font><br><font face=宋体>rpm -ivh bnx2-&lt;version&gt;.src.rpm</font><br><br><font face=宋体>2. 进入/usr/src路径并编译</font><br><font face=宋体>cd /usr/src/{redhat,OpenLinux,turbo,packages,rpm ..}</font><br><font face=宋体>rpm -bb SPECS/bnx2.spec</font><br><font face=宋体>或者</font><br><font face=宋体>rpmbuild -bb SPECS/bnx2.spec (针对RPM version 4.x.x)</font><br><font face=宋体>注意：不同内核的linux版本，其rpm路径不同</font><br><br><font face=宋体>3. 安装刚刚编译好的包</font><br><font face=宋体>rpm -ivh RPMS/i386/bnx2-&lt;version&gt;.i386.rpm</font><br><font face=宋体>驱动被安装到如下路径</font><br><br><font face=宋体>对于2.4.x kernels:</font><br><font face=宋体>/lib/modules/&lt;kernel_version&gt;/kernel/drivers/net/bnx2.o</font><br><font face=宋体>对于2.6.0 kernels:</font><br><font face=宋体>/lib/modules/&lt;kernel_version&gt;/kernel/drivers/net/bnx2.ko</font><br><br><font face=宋体>4. 加载驱动:</font><br><font face=宋体>insmod bnx2.o</font><br><font face=宋体>或</font><br><font face=宋体>insmod bnx2.ko (在 2.6.x kernels)</font><br><font face=宋体>或</font><br><font face=宋体>modprobe bnx2</font><br><font face=宋体>5. 配置网卡地址、网关等等</font><br><br><strong><font face=宋体>TAR驱动包的安装步骤</font></strong><br><font face=宋体>=============================</font><br><font face=宋体>1. 创建一个目录并将文件解包</font><br><font face=宋体>tar xvzf bnx2-&lt;version&gt;.tar.gz</font><br><br><font face=宋体>2. 编译驱动bnx2.o (或bnx2.ko)，生成可加载的模块</font><br><font face=宋体>cd src</font><br><font face=宋体>make</font><br><br><font face=宋体>3. 通过加载模块对其进行测试</font><br><font face=宋体>insmod bnx2.o</font><br><font face=宋体>或</font><br><font face=宋体>insmod bnx2.ko (在2.6.x kernels)</font><br><font face=宋体>或</font><br><font face=宋体>insmod bnx2</font><br><br><font face=宋体>4. 安装驱动</font><br><font face=宋体>make install</font><br><font face=宋体>驱动被安装的位置与RPM方式安装的位置一样</font><br><br><font face=宋体>5. 配置网卡地址、网关等等</font> </p>
</div><img src ="http://www.cppblog.com/cc/aggbug/51494.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cc/" target="_blank">北风之神007</a> 2008-05-29 17:01 <a href="http://www.cppblog.com/cc/archive/2008/05/29/51494.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++各大有名库的介绍（转载）</title><link>http://www.cppblog.com/cc/archive/2007/07/29/28934.html</link><dc:creator>北风之神007</dc:creator><author>北风之神007</author><pubDate>Sun, 29 Jul 2007 04:42:00 GMT</pubDate><guid>http://www.cppblog.com/cc/archive/2007/07/29/28934.html</guid><wfw:comment>http://www.cppblog.com/cc/comments/28934.html</wfw:comment><comments>http://www.cppblog.com/cc/archive/2007/07/29/28934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/cc/comments/commentRss/28934.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cc/services/trackbacks/28934.html</trackback:ping><description><![CDATA[<strong style="color: #040000;">&nbsp;</strong>
<p style="color: #040000;"><strong>C++各大有名库的介绍之C++标准库</strong></p>
<p style="color: #040000;">　　标准库中提供了C++程序的基本设施。虽然C++标准库随着C++标准折腾了许多年，直到标准的出台才正式定型，但是在标准库的实现上却很令人欣慰得看到多种实现，并且已被实践证明为有工业级别强度的佳作。</p>
<p style="color: #040000;">1、Dinkumware C++ Library</p>
<p style="color: #040000;">参考站点：<a href="http://www.dinkumware.com/" target="_blank"><u>http://www.dinkumware.com/</u></a></p>
<p style="color: #040000;">P.J. Plauger编写的高品质的标准库。P.J. Plauger博士是Dr. Dobb's程序设计杰出奖的获得者。其编写的库长期被Microsoft采用，并且最近Borland也取得了其OEM的license，在其C/C++的产品中采用Dinkumware的库。</p>
<p style="color: #040000;">2、RogueWave Standard C++ Library</p>
<p style="color: #040000;">参考站点：<a href="http://www.roguewave.com/" target="_blank"><u>http://www.roguewave.com/</u></a></p>
<p style="color: #040000;">这个库在Borland C++ Builder的早期版本中曾经被采用，后来被其他的库给替换了。笔者不推荐使用。</p>
<p style="color: #040000;">3、SGI STL</p>
<p style="color: #040000;">参考站点：<a href="http://www.roguewave.com/" target="_blank"><u>http://www.roguewave.com/</u></a></p>
<p style="color: #040000;">SGI公司的C++标准模版库。</p>
<p style="color: #040000;">4、STLport</p>
<p style="color: #040000;">参考站点：<a href="http://www.stlport.org/" target="_blank"><u>http://www.stlport.org/</u></a></p>
<p style="color: #040000;">SGI STL库的跨平台可移植版本。</p>
<p style="color: #040000;"><strong>C++各大有名库的介绍——准标准库Boost</strong></p>
<p style="color: #040000;">　　Boost库是一个经过千锤百炼、可移植、提供源代码的C++库，作为标准库的后备，是C++标准化进程的发动机之一。 Boost库由C++标准委员会库工作组成员发起，在C++社区中影响甚大，其成员已近2000人。 Boost库为我们带来了最新、最酷、最实用的技术，是不折不扣的&#8220;准&#8221;标准库。</p>
<p style="color: #040000;">Boost中比较有名气的有这么几个库：</p>
<p style="color: #040000;">Regex<br>正则表达式库</p>
<p style="color: #040000;">Spirit<br>LL parser framework，用C++代码直接表达EBNF</p>
<p style="color: #040000;">Graph<br>图组件和算法</p>
<p style="color: #040000;">Lambda<br>在调用的地方定义短小匿名的函数对象，很实用的functional功能</p>
<p style="color: #040000;">concept check<br>检查泛型编程中的concept</p>
<p style="color: #040000;">Mpl<br>用模板实现的元编程框架</p>
<p style="color: #040000;">Thread<br>可移植的C++多线程库</p>
<p style="color: #040000;">Python<br>把C++类和函数映射到Python之中</p>
<p style="color: #040000;">Pool<br>内存池管理</p>
<p style="color: #040000;">smart_ptr<br>5个智能指针，学习智能指针必读，一份不错的参考是来自CUJ的文章：</p>
<p style="color: #040000;">Smart Pointers in Boost,哦，这篇文章可以查到，CUJ是提供在线浏览的。中文版见笔者在《Dr.Dobb's Journal软件研发杂志》第7辑上的译文。</p>
<p style="color: #040000;">　　Boost总体来说是实用价值很高，质量很高的库。并且由于其对跨平台的强调，对标准C++的强调，是编写平台无关，现代C++的开发者必备的工具。但是Boost中也有很多是实验性质的东西，在实际的开发中实用需要谨慎。并且很多Boost中的库功能堪称对语言功能的扩展，其构造用尽精巧的手法，不要贸然的花费时间研读。Boost另外一面，比如Graph这样的库则是具有工业强度，结构良好，非常值得研读的精品代码，并且也可以放心的在产品代码中多多利用。</p>
<p style="color: #040000;">参考站点：<a href="http://www.boost.org/" target="_blank"><u>http://www.boost.org</u></a></p>
<p style="color: #040000;">&nbsp;</p>
<p style="color: #040000;"><strong>C++各大有名库的介绍——GUI</strong></p>
<p style="color: #040000;">　　在众多C++的库中，GUI部分的库算是比较繁荣，也比较引人注目的。在实际开发中，GUI库的选择也是非常重要的一件事情，下面我们综述一下可选择的GUI库，各自的特点以及相关工具的支持。</p>
<p style="color: #040000;">1、MFC</p>
<p style="color: #040000;">　　大名鼎鼎的微软基础类库（Microsoft Foundation Class）。大凡学过VC++的人都应该知道这个库。虽然从技术角度讲，MFC是不大漂亮的，但是它构建于Windows API 之上，能够使程序员的工作更容易,编程效率高，减少了大量在建立 Windows 程序时必须编写的代码，同时它还提供了所有一般 C++ 编程的优点，例如继承和封装。MFC 编写的程序在各个版本的Windows操作系统上是可移植的，例如，在Windows 3.1下编写的代码可以很容易地移植到 Windows NT 或 Windows 95 上。但是在最近发展以及官方支持上日渐势微。</p>
<p style="color: #040000;">2、QT</p>
<p style="color: #040000;">参考网站：<a href="http://www.trolltech.com/" target="_blank"><u>http://www.trolltech.com</u></a></p>
<p style="color: #040000;">　　Qt是Trolltech公司的一个多平台的C++图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt是完全面向对象的很容易扩展，并且允许真正地组件编程。自从1996年早些时候，Qt进入商业领域，它已经成为全世界范围内数千种成功的应用程序的基础。Qt也是流行的Linux桌面环境KDE 的基础，同时它还支持Windows、Macintosh、Unix/X11等多种平台。</p>
<p style="color: #040000;">3、WxWindows</p>
<p style="color: #040000;">参考网站：<a href="http://www.wxwindows.org/" target="_blank"><u>http://www.wxwindows.org</u></a></p>
<p style="color: #040000;">　　跨平台的GUI库。因为其类层次极像MFC，所以有文章介绍从MFC到WxWindows的代码移植以实现跨平台的功能。通过多年的开发也是一个日趋完善的GUI库，支持同样不弱于前面两个库。并且是完全开放源代码的。新近的C++ Builder X的GUI设计器就是基于这个库的。</p>
<p style="color: #040000;">4、Fox</p>
<p style="color: #040000;">参考网站：<a href="http://www.fox-toolkit.org/" target="_blank"><u>http://www.fox-toolkit.org/</u></a></p>
<p style="color: #040000;">　　开放源代码的GUI库。作者从自己亲身的开发经验中得出了一个理想的GUI库应该是什么样子的感受出发，从而开始了对这个库的开发。有兴趣的可以尝试一下。</p>
<p style="color: #040000;">5、WTL</p>
<p style="color: #040000;">　　基于ATL的一个库。因为使用了大量ATL的轻量级手法，模板等技术，在代码尺寸，以及速度优化方面做得非常到位。主要面向的使用群体是开发COM轻量级供网络下载的可视化控件的开发者。</p>
<p style="color: #040000;">6、GTK</p>
<p style="color: #040000;">参考网站：<a href="http://gtkmm.sourceforge.net/" target="_blank"><u>http://gtkmm.sourceforge.net/</u></a></p>
<p style="color: #040000;">　　GTK是一个大名鼎鼎的C的开源GUI库。在Linux世界中有Gnome这样的杀手应用。而Qt就是这个库的C++封装版本。</p>
<p style="color: #040000;"><strong>C++各大有名库的介绍——网络通信</strong></p>
<p style="color: #040000;">１、ACE</p>
<p style="color: #040000;">参考网站：<a href="http://www.cs.wustl.edu/~schmidt/ACE.html" target="_blank"><u>http://www.cs.wustl.edu/~schmidt/ACE.html</u></a></p>
<p style="color: #040000;">　　C++库的代表，超重量级的网络通信开发框架。ACE自适配通信环境（Adaptive Communication Environment）是可以自由使用、开放源代码的面向对象框架，在其中实现了许多用于并发通信软件的核心模式。ACE提供了一组丰富的可复用C++包装外观（Wrapper Facade）和框架组件，可跨越多种平台完成通用的通信软件任务，其中包括：事件多路分离和事件处理器分派、信号处理、服务初始化、进程间通信、共享内存管理、消息路由、分布式服务动态（重）配置、并发执行和同步，等等。</p>
<p style="color: #040000;">２、StreamModule</p>
<p style="color: #040000;">参考网站：<a href="http://www.omnifarious.org/StrMod" target="_blank"><u>http://www.omnifarious.org/StrMod</u></a></p>
<p style="color: #040000;">　　设计用于简化编写分布式程序的库。尝试着使得编写处理异步行为的程序更容易，而不是用同步的外壳包起异步的本质。</p>
<p style="color: #040000;">３、SimpleSocket</p>
<p style="color: #040000;">参考网站：<a href="http://home.hetnet.nl/~lcbokkers/simsock.htm" target="_blank"><u>http://home.hetnet.nl/~lcbokkers/simsock.htm</u></a></p>
<p style="color: #040000;">　　这个类库让编写基于socket的客户/服务器程序更加容易。</p>
<p style="color: #040000;">４、A Stream Socket API for C++</p>
<p style="color: #040000;">参考网站：<a href="http://www.pcs.cnu.edu/~dgame/sockets/socketsC++/sockets.html" target="_blank"><u>http://www.pcs.cnu.edu/~dgame/sockets/socketsC++/sockets.html</u></a></p>
<p style="color: #040000;">　　又一个对Socket的封装库。</p>
<span style="color: #040000;">
&nbsp;
</span>
<p style="color: #040000;"><strong>C++各大有名库的介绍——XML</strong></p>
<p style="color: #040000;">１、Xerces</p>
<p style="color: #040000;">参考网站：<a href="http://xml.apache.org/xerces-c/" target="_blank"><u>http://xml.apache.org/xerces-c/</u></a></p>
<p style="color: #040000;">　　Xerces-C++ 是一个非常健壮的XML解析器，它提供了验证，以及SAX和DOM API。XML验证在文档类型定义(Document Type Definition，DTD)方面有很好的支持，并且在2001年12月增加了支持W3C XMLSchema 的基本完整的开放标准。</p>
<p style="color: #040000;">２、XMLBooster</p>
<p style="color: #040000;">参考网站：<a href="http://www.xmlbooster.com/" target="_blank"><u>http://www.xmlbooster.com/</u></a></p>
<p style="color: #040000;">　　这个库通过产生特制的parser的办法极大的提高了XML解析的速度，并且能够产生相应的GUI程序来修改这个parser。在DOM和SAX两大主流XML解析办法之外提供了另外一个可行的解决方案。</p>
<p style="color: #040000;">３、Pull Parser</p>
<p style="color: #040000;">参考网站：<a href="http://www.extreme.indiana.edu/xgws/xsoap/xpp" target="_blank"><u>http://www.extreme.indiana.edu/xgws/xsoap/xpp</u></a></p>
<p style="color: #040000;">　　这个库采用pull方法的parser。在每个SAX的parser底层都有一个pull的parser，这个xpp把这层暴露出来直接给大家使用。在要充分考虑速度的时候值得尝试。</p>
<p style="color: #040000;">４、Xalan</p>
<p style="color: #040000;">参考网站：<a href="http://xml.apache.org/xalan-c/" target="_blank"><u>http://xml.apache.org/xalan-c/</u></a></p>
<p style="color: #040000;">　　Xalan是一个用于把XML文档转换为HTML，纯文本或者其他XML类型文档的XSLT处理器。</p>
<p style="color: #040000;">５、CMarkup</p>
<p style="color: #040000;">参考网站：<a href="http://www.firstobject.com/xml.htm" target="_blank"><u>http://www.firstobject.com/xml.htm</u></a></p>
<p style="color: #040000;">　　这是一种使用EDOM的XML解析器。在很多思路上面非常灵活实用。值得大家在DOM和SAX之外寻求一点灵感。</p>
<p style="color: #040000;">６、libxml++</p>
<p style="color: #040000;"><a href="http://libxmlplusplus.sourceforge.net/" target="_blank"><u>http://libxmlplusplus.sourceforge.net/</u></a></p>
<p style="color: #040000;">　　libxml++是对著名的libxml XML解析器的C++封装版本。</p>
<p style="color: #040000;"><strong>C++各大有名库的介绍——科学计算</strong></p>
<p style="color: #040000;">１、Blitz++</p>
<p style="color: #040000;">参考网站：<a href="http://www.oonumerics.org/blitz" target="_blank"><u>http://www.oonumerics.org/blitz</u></a></p>
<p style="color: #040000;">　　Blitz++ 是一个高效率的数值计算函数库，它的设计目的是希望建立一套既具像C++ 一样方便，同时又比Fortran速度更快的数值计算环境。通常，用C++所写出的数值程序，比 Fortran慢20%左右，因此Blitz++正是要改掉这个缺点。方法是利用C++的template技术，程序执行甚至可以比Fortran更快。</p>
<p style="color: #040000;">　　Blitz++目前仍在发展中，对于常见的SVD，FFTs，QMRES等常见的线性代数方法并不提供，不过使用者可以很容易地利用Blitz++所提供的函数来构建。</p>
<p style="color: #040000;">２、POOMA</p>
<p style="color: #040000;">参考网站：<a href="http://www.oonumerics.org/blitz" target="_blank"><u>http://www.codesourcery.com/pooma/pooma</u></a></p>
<p style="color: #040000;">　　POOMA是一个免费的高性能的C++库，用于处理并行式科学计算。POOMA的面向对象设计方便了快速的程序开发，对并行机器进行了优化以达到最高的效率，方便在工业和研究环境中使用。</p>
<p style="color: #040000;">３、MTL</p>
<p style="color: #040000;">参考网站：<a href="http://www.osl.iu.edu/research/mtl" target="_blank"><u>http://www.osl.iu.edu/research/mtl</u></a></p>
<p style="color: #040000;">　　Matrix Template Library(MTL)是一个高性能的泛型组件库，提供了各种格式矩阵的大量线性代数方面的功能。在某些应用使用高性能编译器的情况下，比如Intel的编译器，从产生的汇编代码可以看出其与手写几乎没有两样的效能。</p>
<p style="color: #040000;">４、CGAL</p>
<p style="color: #040000;">参考网站：<a href="http://www.cgal.org/" target="_blank"><u>www.cgal.org</u></a></p>
<p style="color: #040000;">　　Computational Geometry Algorithms Library的目的是把在计算几何方面的大部分重要的解决方案和方法以C++库的形式提供给工业和学术界的用户。</p><img src ="http://www.cppblog.com/cc/aggbug/28934.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cc/" target="_blank">北风之神007</a> 2007-07-29 12:42 <a href="http://www.cppblog.com/cc/archive/2007/07/29/28934.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Lex和Yacc真不错</title><link>http://www.cppblog.com/cc/archive/2007/04/13/21831.html</link><dc:creator>北风之神007</dc:creator><author>北风之神007</author><pubDate>Fri, 13 Apr 2007 13:47:00 GMT</pubDate><guid>http://www.cppblog.com/cc/archive/2007/04/13/21831.html</guid><wfw:comment>http://www.cppblog.com/cc/comments/21831.html</wfw:comment><comments>http://www.cppblog.com/cc/archive/2007/04/13/21831.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/cc/comments/commentRss/21831.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cc/services/trackbacks/21831.html</trackback:ping><description><![CDATA[<div style="TEXT-ALIGN: center">
<h2 style="COLOR: #040000">Lex和Yacc真不错</h2>
<div style="COLOR: #000000; TEXT-ALIGN: left"><span>这两天一直在忙着写论文，论文中需要用到Lex和Yacc的一些东西，看了一些相关的资料，发现Lex和Yacc两个工具还真是非常有意思的东西，有了它们做一些此法语法方面的东西还真是不错，可以用来帮助设计编译器了。等忙玩这一阵子之后，如果有空再上来写一点相关的东西。<br></span></div>
<br></div><img src ="http://www.cppblog.com/cc/aggbug/21831.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cc/" target="_blank">北风之神007</a> 2007-04-13 21:47 <a href="http://www.cppblog.com/cc/archive/2007/04/13/21831.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件测试的14种类型(转载)</title><link>http://www.cppblog.com/cc/archive/2006/10/27/14294.html</link><dc:creator>北风之神007</dc:creator><author>北风之神007</author><pubDate>Fri, 27 Oct 2006 13:04:00 GMT</pubDate><guid>http://www.cppblog.com/cc/archive/2006/10/27/14294.html</guid><wfw:comment>http://www.cppblog.com/cc/comments/14294.html</wfw:comment><comments>http://www.cppblog.com/cc/archive/2006/10/27/14294.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/cc/comments/commentRss/14294.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cc/services/trackbacks/14294.html</trackback:ping><description><![CDATA[<p style="COLOR: #000000">软件测试的14种类型<br><br>作者：啄木鸟（Sawin网站）<br><br>软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程，其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。<br><br>1 数据和数据库完整性测试<br><br>数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。<br>数据库完整性原即：<br>主码完整性：主码不能为空；<br>外码完整性：外码必须等于对应的主码或者为空。<br>数据合理性指数据在数据库中的类型，长度，索引等是否建的比较合理。<br>在项目名称中，数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时，不应将测试对象的用户界面用作数据的接口。对于数据库管理系统 (DBMS)，还需要进行深入的研究，以确定可以支1持测试的工具和技术。<br><br>比如，有两张表：部门和员工。部门中有部门编号，部门名称，部门经理等字段，主码为部门编号；员工表中有员工编号，员工所属部门编号，员工名称，员工类型等字段，主码为员工编号，外码为员工所属部门编号，对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空，他就违反主码完整性原则。如果某个员工所属部门的编号为##，但是##在部门编号中确找不到，这就违反外码完整性原则。<br>员工类型如下定义：0：职工，1：职员，2：实习生。但数据类型为Int，我们都知道Int占有4个字节，如果定义成char(1).就比原来节约空间。<br><br><br>2 白盒测试<br><br>白盒测试是基于代码的测试，测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量，一般黑盒测试由项目经理在程序员开发中来实现。白盒测试分为动态白盒测试和静态白盒测试<br>2.1 静态白盒测试<br>利用眼睛，浏览代码，凭借经验，找出代码中的错误或者代码中不符合书写规范的地方。比如，代码规范中规定，函数必须为动宾结构。而黑盒测试发现一个函数定义如下：<br>Function NameGet(){<br>&#8230;.<br>}<br>这是属于不符合开发规范的错误。<br>有这样一段代码:<br>if (i&lt;0) &amp; (i&gt;=0)<br>&#8230;<br>这段代码交集为整个数轴，IF语句没有必要<br>I=0;<br>while(I&gt;100){<br>J=J+100;<br>T=J*PI;<br>}<br>在循环体内没有I的增加,bug产生。<br><br>2.2 动态白盒测试<br>利用开发工具中的调式工具进行测试。比如一段代码有4个分支，输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。<br>看一段代码<br>if(I&lt;0){<br>P1<br>}else{<br>P2<br>}<br>在调试中输入I=-1,P1程序段通过， P2程序段未通过，属于动态黑盒测试的缺陷<br><br>3.功能测试<br><br>功能测试指测试软件各个功能模块是否正确，逻辑是否正确。<br>对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确，以及业务规则的实施是否恰当。此类测试基于黑盒技术，该技术通过图形用户界面 (GUI) 与应用程序进行交互，并对交互的输出或结果进行分析，以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。<br>比如一个对电子商务系统，前台用户浏览商品-放入购物车-进入结账台，后台处理订单，配货，付款，发货，这一系列流程必须正确无误的走通，不能存在任何的错误。<br><br>4.UI测试<br><br>UI测试指测试用户界面的风格是否满足客户要求，文字是否正确，页面美工是否好看，文字，图片组合是否完美，背景是否美观，操作是否友好等等<br>用户界面 (UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外，UI 测试还可确保 UI 中的对象按照预期的方式运行，并符合公司或行业的标准。包括用户友好性，人性化，易操作性测试。UI测试比较主观，与测试人员的喜好有关<br>比如：页面基调颜色刺眼；用户登入页面比较难于找到，文字中出现错别字，页面图片范围太广等都属于UI测试中的缺陷，但是这些缺陷都不太严重。<br><br>5.性能测试<br><br>性能测试主要测试软件测试的性能，包括负载测试，强度测试，数据库容量测试，基准测试以及基准测试<br>5.1负载测试<br>负载测试是一种性能测试指数据在超负荷环境中运行，程序是否能够承担。<br>在这种测试中，将使测试对象承担不同的工作量，以评测和评估测试对象在不同工作量条件下的性能行为，以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外，负载测试还要评估性能特征，例如，响应时间、事务处理速率和其他与时间相关的方面。<br>比如，在B/S结构中用户并发量测试就是属于负载测试的用户，可以使用webload工具，模拟上百人客户同时访问网站，看系统响应时间，处理速度如何？<br>5.2强度测试<br>强度测试是一种性能测试，他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。<br>实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足，测试对象就可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源（如数据库锁或网络带宽）而造成的。强度测试还可用于确定测试对象能够处理的最大工作量。<br>比如：一个系统在内存366M下可以正常运行，但是降低到258M下不可以运行，告诉内存不足，这个系统对内存的要求就是366M。<br>5.3数据库容量测试<br>数据库容量测试指通过存储过程往数据库表中插入一定数量的数据，看看相关页面是否能够及时显示数据。<br>数据库容量测试使测试对象处理大量的数据，以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如，如果测试对象正在为生成一份报表而处理一组数据库记录，那么容量测试就会使用一个大型的测试数据库，检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录，计算相关页面的调用时间。<br>比如，在电子商务系统中，通过insert customer 往user表中插入10 000数据，看其是否可以正常显示顾客信息列表页面，如果要求达到最多可以处理100 000个客户，但是顾客信息列表页面不能够在规定的时间内显示出来，就需要调整程序中的SQL查询语句；如果在规定的时间内显示出来，可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。<br>5.4基准测试<br>基准测试与已知现有的系统进行比较，主要检验是否与类似的产品具有竞争性的一种测试。<br>如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据，你可以测试你这套系统，看看哪些地方比用友财务系统好，哪些地方差？以便改进自己的系统，也可为产品广告提供数据。<br>5.5竞争测试<br>软件竞争使用各种资源（数据纪录，内存等），看他与其他相关系统对资源的争夺能力。比如：一台机器上即安装您的财务系统，又安装用友财务系统。当CPU占有率下降后，看看是否能够强过用友财务系统，而是自己的系统能够正常运行？<br><br>6. 安全性和访问控制测试<br><br>安全性和访问控制测试侧重于安全性的两个关键方面：<br>应用程序级别的安全性，包括对数据或业务功能的访问<br>系统级别的安全性，包括对系统的登录或远程访问。<br>6.1应用程序级别的安全性<br>可确保：在预期的安全性情况下，主角只能访问特定的功能或用例，或者只能访问有限的数据。例如，可能会允许所有人输入数据，创建新账户，但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性，测试就可确保&#8220;用户类型一&#8221;能够看到所有客户消息（包括财务数据），而&#8220;用户二&#8221;只能看见同一客户的统计数据。<br>比如B/S系统，不通过登入页面，直接输入URL,看其是否能够进入系统？<br>6.2系统级别的安全性<br>可确保只有具备系统访问权限的用户才能访问应用程序，而且只能通过相应的网关来访问。<br>比如输入管理员账户，检查其密码是否容易猜取，或者可以从数据库中获得？<br><br>7.故障转移和恢复测试<br><br>故障转移和恢复测试指当主机软硬件发生灾难时候，备份机器是否能够正常启动，使系统是否可以正常运行，这对于电信，银行等领域的软件是十分重要的。<br>故障转移和恢复测试可确保测试对象能成功完成故障转移，并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。 <br>故障转移测试可确保：对于必须持续运行的系统，一旦发生故障，备用系统就将不失时机地&#8220;顶替&#8221;发生故障的系统，以避免丢失任何数据或事务。<br>恢复测试是一种对抗性的测试过程。在这种测试中，将把应用程序或系统置于极端的条件下（或者是模拟的极端条件下），以产生故障（例如设备输入/输出 (I/O) 故障或无效的数据库指针和关健字）。然后调用恢复进程并监测和检查应用程序和系统，核实应用程序或系统和数据已得到了正确的恢复。一定要注意主备定时备份<br>比如电信系统，突然主机程序发生死机，备份机器是否能够启动，使系统能够正常运行，从而不影响用户打电话？</p>
<p style="COLOR: #000000">8.配置测试<br><br>又叫兼容性测试。配置测试核实测试对象在不同的软件和硬件配置中的运行情况。在大多数生产环境中，客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如，应用程序、驱动程序等而且在任何时候，都可能运行许多不同的软件组合，从而占用不同的资源。（如浏览器版本，操作系统版本等）<br>下面列出主要配置测试<br>8.1浏览器兼容性<br>测试软件在不同产商的浏览器下是否能够正确显示与运行；<br>比如测试IE，Natscape浏览器下是否可以运行这套软件？<br>8.2操作系统兼容性<br>测试软件在不同操作系统下是否能够正确显示与运行；<br>比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件？<br>8.3硬件兼容性<br>测试与硬件密切相关的软件产品与其他硬件产品的兼容性，比如该软件是少在并口设备中的，测试同时使用其他并口设备，系统是否可以正确使用.<br>比如在INTER,舒龙CPU芯片下系统是否能够正常运行？<br>这样的测试必须建立测试实验室，在各种环境下进行测试。<br><br>9.安装测试<br><br>安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如，进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。<br>安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装，安装代码提供安装一些程序能够运行的基础数据。<br><br>10.多语种测试<br><br>又称本地化测试，是指为各个地方开发产品的测试，如英文版，中文版等等，包括程序是否能够正常运行，界面是否符合当地习俗，快捷键是否正常起作用等等，特别测试在A语言环境下运行B语言软件（比如在英文win98下试图运行中文版的程序），出现现象是否正常。<br>本地化测试还要考虑：<br>l 当语言从A翻译到B，字符长度变化是否影响页面效果。比如中文软件中有个按键叫&#8220;看广告&#8221;，翻译到英文版本中为 &#8220;View advertisement&#8221;可能影响页面的美观程度<br>l 要考虑同一单词在各个国家的不同意思，比如football在英文中为足球，而美国人使用中可能理解为美式橄榄球。<br>l 要考虑各个国家的民族习惯，比如龙个美国中被理解邪恶的象征，但翻译到中国，中国人认为为吉祥的象征。<br><br>11.文字测试<br><br>文字测试测试软件中是否拼写正确，是否易懂，不存在二义性，没有语法错误；文字与内容是否有出入等等，包括图片文字。<br>比如：&#8220;比如，请输入正确的证件号码！&#8221;何谓正确的证件号码，证件可以为身份证，驾驶证，也可为军官证，如果改为&#8220;请输入正确的身份证号码！&#8221;用户就比较容易理解了。<br><br>12.分辨率测试<br><br>测试在不同分辨率下，界面的美观程度,分为800*600，1024*768，1152*864，1280*768，1280*1024，1200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率，而在其他分辨率下也都能可以运行。<br><br>13发布测试<br><br>主要在产品发布前对一些附带产品，比如说明书，广告稿等进行测试<br><br>13.1说明书测试<br>主要为语言检查，功能检查，图片检查<br>语言检查：检查说明书语言是否正确，用词是否易于理解；<br>功能检查：功能是否描述完全，或者描述了并没有的功能等；<br>图片检查:：检查图片是否正确<br>13.2宣传材料测试<br>主要测试产品中的附带的宣传材料中的语言，描述功能，图片<br>13.3帮助文件测试<br>帮助文件是否正确，易懂，是否人性化。最好能够提供检索功能。<br>13.4广告用语<br>产品出公司前的广告材料文字，功能，图片，人性化的检查<br><br>14 文档审核测试<br><br>文档审核测试目前越来越引起人们的重视，软件质量不是检查出来的，而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料：<br><br>文档审核测试主要包括需求文档测试，设计文档测试，为前置软件测试测试中的一部分。<br><br>14.1需求文档测试<br><br>主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现；<br><br>14.2设计文档测试<br><br>测试设计是否符合全部需求以及设计是否合理。<br><br>总结<br><br>据美国软件质量安全中心2000年对美国一百家知名的软件厂商统计，得出这样一个结论：软件缺陷在开发前期发现比在开发后期发现资金，人力上节约90%；软件缺陷在推向市场前发现比在推出后发现资金，人力上节约90%。所以说软件的缺陷应该尽早发现。不是所有的软件都要进行任何类型的软件测试的，可以根据产品的具体情况进行组装测试不同的类型。</p><img src ="http://www.cppblog.com/cc/aggbug/14294.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cc/" target="_blank">北风之神007</a> 2006-10-27 21:04 <a href="http://www.cppblog.com/cc/archive/2006/10/27/14294.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++Primer第四版下载</title><link>http://www.cppblog.com/cc/archive/2006/06/19/8706.html</link><dc:creator>北风之神007</dc:creator><author>北风之神007</author><pubDate>Mon, 19 Jun 2006 07:03:00 GMT</pubDate><guid>http://www.cppblog.com/cc/archive/2006/06/19/8706.html</guid><wfw:comment>http://www.cppblog.com/cc/comments/8706.html</wfw:comment><comments>http://www.cppblog.com/cc/archive/2006/06/19/8706.html#Feedback</comments><slash:comments>29</slash:comments><wfw:commentRss>http://www.cppblog.com/cc/comments/commentRss/8706.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cc/services/trackbacks/8706.html</trackback:ping><description><![CDATA[C++Primer第四版，很经典的书，这里是E文第四版。<br><br>&nbsp;<a title=下载 href="http://www.cppblog.com/Files/cc/CppPrimer4E.rar">下载</a><br>&nbsp;<a title=" download" href="http://www.cppblog.com/Files/cc/CppPrimer4E.rar">download</a><br><br><a title=《C++Primer第四版代码》下载 href="http://www.cppblog.com/Files/cc/CppPrimer4ECode.rar">《C++Primer第四版代码》下载</a><br><br>2006年6月19日 15:06:39 <script type="text/javascript"><!--
google_ad_client = "pub-4544529865097906";
google_ad_width = 336;
google_ad_height = 280;
google_ad_format = "336x280_as";
google_ad_type = "text_image";
//2007-05-28: cpp
google_ad_channel = "3662850853";
google_color_border = "FFFFFF";
google_color_bg = "FFFFFF";
google_color_link = "000000";
google_color_text = "000000";
google_color_url = "000000";
//-->
</script><script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script><img src ="http://www.cppblog.com/cc/aggbug/8706.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cc/" target="_blank">北风之神007</a> 2006-06-19 15:03 <a href="http://www.cppblog.com/cc/archive/2006/06/19/8706.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>《C和指针》书里面的源程序</title><link>http://www.cppblog.com/cc/archive/2006/05/26/7669.html</link><dc:creator>北风之神007</dc:creator><author>北风之神007</author><pubDate>Fri, 26 May 2006 01:40:00 GMT</pubDate><guid>http://www.cppblog.com/cc/archive/2006/05/26/7669.html</guid><wfw:comment>http://www.cppblog.com/cc/comments/7669.html</wfw:comment><comments>http://www.cppblog.com/cc/archive/2006/05/26/7669.html#Feedback</comments><slash:comments>25</slash:comments><wfw:commentRss>http://www.cppblog.com/cc/comments/commentRss/7669.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/cc/services/trackbacks/7669.html</trackback:ping><description><![CDATA[<p align=center><font color=#000000>《C和指针》书里面的源程序</font> </p>
<p align=center><font color=#000000>&nbsp;&nbsp;&nbsp;&nbsp; Kenneth A.Reek著的 《POINTERS ON C》真是一本很不错的书，昨天去作者的网站把书里面的代码下载下来了，在这里和大家分享，不过书后习题的答案还没有搞到，我去了Addison Wesley 的网站下载本书的习题答案，不过注册用户需要Acces Code，这个比较麻烦，给人民邮电出版社的人发了邮件，目前还没有回复，不知道结果会怎么样。<br></font><br><br><a class="" title="" href="http://www.cppblog.com/Files/cc/programs.rar" target="">下载&nbsp; download</a>&nbsp;<br><br><span style="COLOR: red">抱歉 没要到习题答案<img height=20 src="http://www.cppblog.com/Emoticons/QQ/02.gif" width=20 border=0></span><br>&nbsp;&nbsp;&nbsp;</p><img src ="http://www.cppblog.com/cc/aggbug/7669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/cc/" target="_blank">北风之神007</a> 2006-05-26 09:40 <a href="http://www.cppblog.com/cc/archive/2006/05/26/7669.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>