﻿<?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++博客-前进的路上-随笔分类-Linux</title><link>http://www.cppblog.com/wc250en007/category/18815.html</link><description>前进的路上</description><language>zh-cn</language><lastBuildDate>Sat, 03 Nov 2012 04:26:49 GMT</lastBuildDate><pubDate>Sat, 03 Nov 2012 04:26:49 GMT</pubDate><ttl>60</ttl><item><title>有关Linux的.a、.so和.o文件(转)</title><link>http://www.cppblog.com/wc250en007/archive/2012/11/03/194186.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Fri, 02 Nov 2012 23:53:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/11/03/194186.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/194186.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/11/03/194186.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/194186.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/194186.html</trackback:ping><description><![CDATA[<span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">gcc 生成 .a静态库和 .so动态库&nbsp;</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">我们通常把一些公用函数制作成函数库，供其它程序使用。函数库分为静态库和动态库两</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">种。静态库在程序编译时会被连接到目标代码中，程序运行时将不再需要该静态库。动态</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">库在程序编译时并不会被连接到目标代码中，而是在程序运行是才被载入，因此在程序运</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库，以</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">及使用它们。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">在创建函数库前，我们先来准备举例用的源程序，并将函数库的源程序编译成.o文件。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">第1步：编辑得到举例的程序--hello.h、hello.c和main.c；</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">hello.c(见程序2)是函数库的源程序，其中包含公用函数hello，该函数将在屏幕上输出"</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">Hello XXX!"。hello.h(见程序1)为该函数库的头文件。main.c(见程序3)为测试库文件的</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">主程序，在主程序中调用了公用函数hello。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">程序1: hello.h</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#ifndef HELLO_H</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#define HELLO_H</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">void hello(const char *name);</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#endif //HELLO_H</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">程序2: hello.c</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#include &lt;stdio.h&gt;</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">void hello(const char *name)</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">{</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">printf("Hello %s!\n", name);</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">}</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">程序3: main.c</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#include "hello.h"</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">int main()</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">{</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">hello("everyone");</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">return 0;</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">}</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">第2步：将hello.c编译成.o文件；</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">无论静态库，还是动态库，都是由.o文件创建的。因此，我们必须将源程序hello.c通过g</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">cc先编译成.o文件。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">在系统提示符下键入以下命令得到hello.o文件。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># gcc -c hello.c</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">我们运行ls命令看看是否生存了hello.o文件。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ls</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">hello.c hello.h hello.o main.c</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">在ls命令结果中，我们看到了hello.o文件，本步操作完成。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">下面我们先来看看如何创建静态库，以及使用它。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">第3步：由.o文件创建静态库；</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">静态库文件名的命名规范是以lib为前缀，紧接着跟静态库名，扩展名为.a。例如：我们将</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">创建的静态库名为myhello，则静态库文件名就是libmyhello.a。在创建和使用静态库时，</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">需要注意这点。创建静态库用ar命令。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">在系统提示符下键入以下命令将创建静态库文件libmyhello.a。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ar -crv libmyhello.a hello.o</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">我们同样运行ls命令查看结果：</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ls</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">hello.c hello.h hello.o libmyhello.a main.c</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">ls命令结果中有libmyhello.a。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">第4步：在程序中使用静态库；</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">静态库制作完了，如何使用它内部的函数呢？只需要在使用到这些公用函数的源程序中包</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">含这些公用函数的原型声明，然后在用gcc命令生成目标文件时指明静态库名，gcc将会从</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">静态库中将公用函数连接到目标文件中。注意，gcc会在静态库名前加上前缀lib，然后追</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">加扩展名.a得到的静态库文件名来查找静态库文件。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">在程序3:main.c中，我们包含了静态库的头文件hello.h，然后在主程序main中直接调用公</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">用函数hello。下面先生成目标程序hello，然后运行hello程序看看结果如何。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">法一 # gcc -o hello main.c -L. &#8211;lmyhello，自定义的库时，main.c还可放在-L.和 &#8211;lmyhello之间，但是不能放在它俩之后，否则会提示myhello没定义，但是是系统的库时，如g++ -o main（-L/usr/lib） -lpthread main.cpp就不出错。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">法二 #gcc main.c libmyhello.a -o hello</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">法三：先生成main.o：gcc -c main.c ，再生成可执行文件：gcc -o hello main.o libmyhello.a，动态库连接时也可以这样做。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ./hello</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">Hello everyone!</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">我们删除静态库文件试试公用函数hello是否真的连接到目标文件 hello中了。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># rm libmyhello.a</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">rm: remove regular file `libmyhello.a'? y</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ./hello</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">Hello everyone!</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">程序照常运行，静态库中的公用函数已经连接到目标文件中了。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">我们继续看看如何在Linux中创建动态库。我们还是从.o文件开始。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">第5步：由.o文件创建动态库文件；</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">动态库文件名命名规范和静态库文件名命名规范类似，也是在动态库名增加前缀lib，但其</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">文件扩展名为.so。例如：我们将创建的动态库名为myhello，则动态库文件名就是libmyh</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">ello.so。用gcc来创建动态库。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">在系统提示符下键入以下命令得到动态库文件libmyhello.so。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># gcc -shared -fPCI -o libmyhello.so hello.o （-o不可少）</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">我们照样使用ls命令看看动态库文件是否生成。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ls</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">hello.c hello.h hello.o libmyhello.so main.c</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">第6步：在程序中使用动态库；</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">在程序中使用动态库和使用静态库完全一样，也是在使用到这些公用函数的源程序中包含</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">这些公用函数的原型声明，然后在用gcc命令生成目标文件时指明动态库名进行编译。我们</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">先运行gcc命令生成目标文件，再运行它看看结果。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># gcc -o hello main.c -L. -lmyhello</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">(或 #gcc main.c libmyhello.so -o hello 不会出错（没有libmyhello.so的话，会出错），但是接下来./hello 会提示出错，因为虽然连接时用的是当前目录的动态库，但是运行时，是到/usr/lib中找库文件的，将文件libmyhello.so复制到目录/usr/lib中就OK了)</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ./hello</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">./hello: error while loading shared libraries: libmyhello.so: cannot open shar</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">ed object file: No such file or directory</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">哦！出错了。快看看错误提示，原来是找不到动态库文件libmyhello.so。程序在运行时，</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">会在/usr/lib和/lib等目录中查找需要的动态库文件。若找到，则载入动态库，否则将提</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">示类似上述错误而终止程序运行。我们将文件libmyhello.so复制到目录/usr/lib中，再试</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">试。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># mv libmyhello.so /usr/lib</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ./hello</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">Hello everyone!</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">成功了。这也进一步说明了动态库在程序运行时是需要的。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">我们回过头看看，发现使用静态库和使用动态库编译成目标程序使用的gcc命令完全一样，</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">那当静态库和动态库同名时，gcc命令会使用哪个库文件呢？抱着对问题必究到底的心情，</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">来试试看。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">先删除除.c和.h外的所有文件，恢复成我们刚刚编辑完举例程序状态。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># rm -f hello hello.o /usr/lib/libmyhello.so</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ls</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">hello.c hello.h main.c</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">在来创建静态库文件libmyhello.a和动态库文件libmyhello.so。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># gcc -c hello.c</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ar -cr libmyhello.a hello.o （或-cvr ）</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># gcc -shared -fPCI -o libmyhello.so hello.o</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ls</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">hello.c hello.h hello.o libmyhello.a libmyhello.so main.c</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">通过上述最后一条ls命令，可以发现静态库文件libmyhello.a和动态库文件libmyhello.s</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">o都已经生成，并都在当前目录中。然后，我们运行gcc命令来使用函数库myhello生成目标</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">文件hello，并运行程序 hello。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># gcc -o hello main.c -L. &#8211;lmyhello （动态库和静态库同时存在时，优先使用动态库， 当然，直接#gcc main.c libmyhello.a -o hello的话，就是指定为静态库了）</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; "># ./hello</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">./hello: error while loading shared libraries: libmyhello.so: cannot open shar</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">ed object file: No such file or directory</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">#</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">从程序hello运行的结果中很容易知道，当静态库和动态库同名时，gcc命令将优先使用动态库，默认去连/usr/lib和/lib等目录中的动态库，将文件libmyhello.so复制到目录/usr/lib中即可。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">Note:</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">编译参数解析</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">最主要的是GCC命令行的一个选项:</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">-shared 该选项指定生成动态连接库（让连接器生成T类型的导出符号表，有时候也生成弱连接W类型的导出符号），不用该标志外部程序无法连接。相当于一个可执行文件</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">-fPIC 表示编译为位置独立的代码，不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要，而不能达到真正代码段共享的目的。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">-L. 表示要连接的库在当前目录中；（多个库：在编译命令行中，将使用的静态库文件放在源文件后面就可以了。比如：gcc -L/usr/lib myprop.c libtest.a libX11.a libpthread.a -o myprop</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">其中-L/usr/lib指定库文件的查找路径。编译器默认在当前目录下先查找指定的库文件，如前面的&#8220;法二 #gccmain.c libmyhello.a-o hello&#8221;）</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">-lmyhello 编译器查找动态连接库时有隐含的命名规则，即在给出的名字前面加上lib，后面加上.so或.a来确定库的名称libmyhello.so或libmyhello.a。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">LD_LIBRARY_PATH这个环境变量指示动态连接器可以装载动态库的路径。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">当然如果有root权限的话，可以修改/etc/ld.so.conf文件，然后调用 /sbin/ldconfig来达到同样的目的，不过如果没有root权限，那么只能采用输出LD_LIBRARY_PATH的方法了。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">调用动态库的时候有几个问题会经常碰到，有时，明明已经将库的头文件所在目录 通过 &#8220;-I&#8221; include进来了，库所在文件通过 &#8220;-L&#8221;参数引导，并指定了&#8220;-l&#8221;的库名，但通过ldd命令察看时，就是死活找不到你指定链接的so文件，这时你要作的就是通过修改 LD_LIBRARY_PATH或者/etc/ld.so.conf文件来指定动态库的目录。通常这样做就可以解决库无法链接的问题了。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">另：</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">从上述可知，如何找到生成的动态库有3种方式：</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">(1)把库拷贝到/usr/lib和/lib目录下。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">(2)在LD_LIBRARY_PATH环境变量中加上库所在路径。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">例如动态库libhello.so在/home/example/lib目录下：</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/example/lib</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">(3) 修改/etc/ld.so.conf文件，把库所在的路径加到文件末尾，并执行ldconfig刷新。这样，加入的目录下的所有库文件都可见。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">附：像下面这样指定路径去连接系统的静态库，会报错说要连接的库找不到:</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">g++ -o main main.cpp -L/usr/lib libpthread.a&nbsp;</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">必须这样g++ -o main main.cpp -L/usr/lib -lpthread才正确 。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">自定义的库考到/usr/lib 下时，</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">g++ -o main main.cpp -L/usr/lib libpthread.a libthread.a libclass.a会出错，但是这样g++ -o main main.cpp -L/usr/lib -lpthread -lthread -lclass就正确了。</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">转自：http://hi.baidu.com/������/blog/item/e58ed2f142913ea7a50f525e.html</span><br style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; " /><span style="color: #454545; font-family: tahoma, Helvetica, arial; background-color: #ffffff; ">来自: http://hi.baidu.com/jiyeqian/blog/item/d6886e22c93f5ef8d6cae27c.html</span><img src ="http://www.cppblog.com/wc250en007/aggbug/194186.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-11-03 07:53 <a href="http://www.cppblog.com/wc250en007/archive/2012/11/03/194186.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubunto下安装搜狗拼音输入法</title><link>http://www.cppblog.com/wc250en007/archive/2012/07/07/182069.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Sat, 07 Jul 2012 05:48:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/07/07/182069.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/182069.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/07/07/182069.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/182069.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/182069.html</trackback:ping><description><![CDATA[<div><div lh22"="">             原创作品，允许转载，转载时请务必以超链接形式标明文章 <a href="http://lhflinux.blog.51cto.com/1961662/515610" target="_blank" style="text-decoration:underline">原始出处</a> 、作者信息和本声明。否则将追究法律责任。<a href="http://lhflinux.blog.51cto.com/1961662/515610">http://lhflinux.blog.51cto.com/1961662/515610</a>             </div>                    		<div>     		  <p>ubunto下安装搜狗拼音输入法</p> <p>1.首先下载scim安装包</p> <p>cd /home/haifeng</p> <p>wget http://scim-python.googlecode.com/files/scim-python-0.1.12.tar.gz</p> <p>&nbsp;</p> <p><a target="_blank" href="http://img1.51cto.com/attachment/201103/111403653.png"><img alt="" src="http://img1.51cto.com/attachment/201103/111403653.png" border="0" /></a></p> <p>2.解压安装包 并进入其目录、</p> <p>haifeng@haifeng-EX38-DS4:~/下载$ tar zxf scim-python-0.1.12.tar.gz</p> <p>haifeng@haifeng-EX38-DS4:~/下载$ cd scim-python-0.1.12/</p> <p>&nbsp;</p> <p>3.使用apt-get 安装scim所依赖到扩展库</p> <p>&nbsp;&nbsp;&nbsp; sudo apt-get install scim-dev<br /> &nbsp;&nbsp;&nbsp; sudo apt-get install python-dev<br /> &nbsp;&nbsp;&nbsp; sudo apt-get install python-enchant<br /> &nbsp;&nbsp;&nbsp; sudo apt-get install python-gtk2-dev<br /> &nbsp;&nbsp;&nbsp; sudo apt-get install libgtk2.0-dev<br /> &nbsp;</p> <p>4.编译安装scim源码包</p> <p>&nbsp;&nbsp;&nbsp; ./configure --prefix=/usr/local<br /> &nbsp;&nbsp;&nbsp; make<br /> &nbsp;&nbsp;&nbsp; sudo make install<br /> &nbsp;</p> <p>5.重启系统 reboot</p> <p>使用 Ctrl+空格键 进行切换输入法</p> <p>&nbsp;</p> <p><a target="_blank" href="http://img1.51cto.com/attachment/201103/112214536.png"><img alt="" src="http://img1.51cto.com/attachment/201103/112214536.png" border="0" /></a></p> <p>&nbsp;</p> <p>6.成功</p> <p>&nbsp;</p> <p>&nbsp;</p> <p>&nbsp;</p><p>本文出自 &#8220;<a href="http://lhflinux.blog.51cto.com/">海风的linux之路</a>&#8221; 博客，请务必保留此出处<a href="http://lhflinux.blog.51cto.com/1961662/515610">http://lhflinux.blog.51cto.com/1961662/515610</a></p>     		</div></div><img src ="http://www.cppblog.com/wc250en007/aggbug/182069.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-07-07 13:48 <a href="http://www.cppblog.com/wc250en007/archive/2012/07/07/182069.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable) </title><link>http://www.cppblog.com/wc250en007/archive/2012/07/07/182056.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Sat, 07 Jul 2012 04:37:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/07/07/182056.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/182056.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/07/07/182056.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/182056.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/182056.html</trackback:ping><description><![CDATA[<div><div id="sina_keyword_ad_area2"  "=""> 			<p style="font-weight: bold; text-decoration: underline;"> 出现这个问题的原因可能是有另外一个程序正在运行，导致资源被锁不可用。而导致资源被锁的原因，可能是上次安装时没正常完成，而导致出现此状况。</p> <p>解决方法：输入以下命令</p> <p>sudo rm /var/cache/apt/archives/lock</p> <p>sudo rm /var/lib/dpkg/lock</p> <p>之后再安装想装的包，即可解决</p> <p>&nbsp;<wbr><wbr></p> <p>&nbsp;<wbr><wbr></p> <p>今天玩ubuntu的时候，在弄更新源的时候，突然出现以下错误：</p> <p>[1]+ Stopped&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr>&nbsp;<wbr><wbr> sudo apt-get update<br /> haiquan@haiquan-desktop:~$ sudo apt-get update<br /> E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)<br /> E: Unable to lock the list directory</p> <p>开始以为是权限不够，就是用 sudo apt-get update,发现还是报错，问题没有解决。于是上网搜索了一下，答案如下：</p> <p>问题应该是<span style="font-weight: bold; text-decoration: underline; font-style: italic;">之前那个更新被强制取消的问题，进程仍然还在</span>。用这个命令查看一下：</p> <p>ps -e | grep apt</p> <p>显示结果如下：</p> <p>6362 ? 00:00:00 apt</p> <p>6934 ? 00:00:00 apt-get</p> <p>7368 ? 00:00:00 synaptic</p> <p>use su to root:<br /></p> <p>root# kill 6362<br /></p> <p>root# kill 6934<br /></p> <p>root# kill 7368<br /></p> <p>再次在终端里查看ps -e | grep apt 没有任何结果了</p> <p>继续执行sudo apt-get update</p> <p>OK！</p><p><br /></p><p><div>http://blog.csdn.net/zyxlinux888/article/details/6358615</div><br /></p>							 		</div></div><img src ="http://www.cppblog.com/wc250en007/aggbug/182056.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-07-07 12:37 <a href="http://www.cppblog.com/wc250en007/archive/2012/07/07/182056.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?</title><link>http://www.cppblog.com/wc250en007/archive/2012/07/03/181265.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Tue, 03 Jul 2012 08:42:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/07/03/181265.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/181265.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/07/03/181265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/181265.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/181265.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; border-right-width: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); list-style-type: none; text-indent: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; font: 14px/21px Arial; word-wrap: normal; white-space: normal; orphans: 2; border-top-width: 0px; border-bottom-width: 0px; letter-spacing: normal; color: rgb(54,46,43); word-break: normal; border-left-width: 0px; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">所以首先确定没开两个APT-GET，发现我已经开了新立得软件包管理器，又在终端用apt-get，关掉新立得软件包管理器。问题解决。</p>
<p style="text-align: left; padding-bottom: 0px; border-right-width: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); list-style-type: none; text-indent: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; font: 14px/21px Arial; word-wrap: normal; white-space: normal; orphans: 2; border-top-width: 0px; border-bottom-width: 0px; letter-spacing: normal; color: rgb(54,46,43); word-break: normal; border-left-width: 0px; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">还有就是可以删除，重新配置</p>
<p style="text-align: left; padding-bottom: 0px; border-right-width: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); list-style-type: none; text-indent: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; font: 14px/21px Arial; word-wrap: normal; white-space: normal; orphans: 2; border-top-width: 0px; border-bottom-width: 0px; letter-spacing: normal; color: rgb(54,46,43); word-break: normal; border-left-width: 0px; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">sudo rm /var/lib/dpkg/lock<br />sudo dpkg --configure -a</p><br /><br />地址：<a href="http://blog.csdn.net/pfanaya/article/details/6695810">http://blog.csdn.net/pfanaya/article/details/6695810</a><img src ="http://www.cppblog.com/wc250en007/aggbug/181265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-07-03 16:42 <a href="http://www.cppblog.com/wc250en007/archive/2012/07/03/181265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu中设置synergy自动开机启动(转)</title><link>http://www.cppblog.com/wc250en007/archive/2012/07/03/181258.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Tue, 03 Jul 2012 06:35:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/07/03/181258.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/181258.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/07/03/181258.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/181258.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/181258.html</trackback:ping><description><![CDATA[<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">对于有两台PC（一台WIN一台LINUX）的用户来说， synergy是一个很好用的软件，它可以让你两台机器共用一个键盘和一个鼠标。</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">WIN里设置synergy自动启动很简单，但ubuntu里就会有点复杂。让两台机器开机时就自动连接起来，用起来感觉就是同一台机器一样，非常方便。</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">下面来介绍一下怎么让synergy自动开机启动。 注意！ 这篇文章只针对 ubuntu !! 其他发行版本的linux设置会有很大的不同。 笔者在ubuntu 10.4和11.4上都实践过，没有问题，相信ubuntu的其他版本也能用上。</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">1. 到 /etc/gdm的目录下，看到 Init, PostLogin和PreSessions 三个子目录；</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">2. Init 这个子目录下有个 Default 文件， 里面的内容是管登录画面时的启动项，</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; &nbsp; PostLogin下也有个 Default文件，里面的内容是管正在登录时的启动项，</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; &nbsp; PreSessions下也有个Default文件，里面的内容是管正在登录时的启动项，</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; &nbsp; 如果你发现没有Default文件，只有一个Default.sample文件的话，也是正常的，Default.sample是给你作为一个模版来参考，让你知道怎么写Default文件。这种情况下，你只要复制一下defaut.sample文件并重命名为Default就行，或者直接将Default.sample改为Default也行。</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">3. 然后，分别对这个三文件添加下面的内容：</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><u>在Init的Default里： 加上</u></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">/usr/bin/killall synergyc&nbsp;<br />sleep 1<br />/usr/bin/synergyc [&lt;options&gt;] synergy-server-hostname</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><u>在PostLogin的Default里：加上</u></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">/usr/bin/killall synergyc&nbsp;<br />sleep 1&nbsp;<br /></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; &nbsp;<span class="Apple-converted-space">&nbsp;</span><u>在PreSession的Default里：加上</u></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">/usr/bin/killall synergyc&nbsp;<br />sleep 1&nbsp;<br />/usr/bin/synergyc [&lt;options&gt;] 你要连的机器的IP(或它的计算机名) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">/* 例如我的主机名叫 alvin-computer, ip是 12.22.33.44,&nbsp; &nbsp;那么这句应该这样写/usr/bin/synergyc 12.22.33.44 &nbsp; &nbsp;或/usr/bin/synergyc alvin-computer，至于那个option就不用管它了*/</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">(这些语句分别是啥意思，我就不详说了，你懂的...）</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; &nbsp; 分别保存，退出，重启----------&gt;大功告成！！！！</p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /></p>
<p style="text-align: left; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/26px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp; &nbsp; 用过synergy你就知道感觉是一个字： 爽！<br /><br />原文地址：<a href="http://blog.csdn.net/lihaoweiv/article/details/6608563">http://blog.csdn.net/lihaoweiv/article/details/6608563</a></p><img src ="http://www.cppblog.com/wc250en007/aggbug/181258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-07-03 14:35 <a href="http://www.cppblog.com/wc250en007/archive/2012/07/03/181258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu配置IP和DNS</title><link>http://www.cppblog.com/wc250en007/archive/2012/07/03/181229.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Tue, 03 Jul 2012 02:48:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/07/03/181229.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/181229.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/07/03/181229.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/181229.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/181229.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/25px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">首先设置IP</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">sudo&nbsp;vim&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">etc</span><span style="color: #000000">/</span><span style="color: #000000">network</span><span style="color: #000000">/</span><span style="color: #0000ff">interface</span></div>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/25px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将其内容删除 加上以下内容</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auto&nbsp;lo<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iface&nbsp;lo&nbsp;inet&nbsp;loopback<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />#使用网卡0<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auto&nbsp;eth0<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br />#使用静态IP<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iface&nbsp;eth0&nbsp;inet&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;address&nbsp;</span><span style="color: #000000">192.168</span><span style="color: #000000">.</span><span style="color: #000000">0.168</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;netmask&nbsp;</span><span style="color: #000000">255.255</span><span style="color: #000000">.</span><span style="color: #000000">255.0</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;network&nbsp;</span><span style="color: #000000">192.168</span><span style="color: #000000">.</span><span style="color: #000000">0.0</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;broadcast&nbsp;</span><span style="color: #000000">192.168</span><span style="color: #000000">.</span><span style="color: #000000">0.255</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gateway&nbsp;</span><span style="color: #000000">192.168</span><span style="color: #000000">.</span><span style="color: #000000">0.1</span><span style="color: #000000"><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span></div>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/25px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><br /><br /></p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/25px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">保存 然后修改DNS</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">sudo&nbsp;vim&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">etc</span><span style="color: #000000">/</span><span style="color: #000000">resolv.conf</span></div>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/25px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 将内容修改为 nameserver 202.103.24.68</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/25px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">保存 重启网络连接</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">sudo&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">etc</span><span style="color: #000000">/</span><span style="color: #000000">init.d</span><span style="color: #000000">/</span><span style="color: #000000">networking&nbsp;restart</span></div>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/25px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">&nbsp;</p><img src ="http://www.cppblog.com/wc250en007/aggbug/181229.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-07-03 10:48 <a href="http://www.cppblog.com/wc250en007/archive/2012/07/03/181229.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu下执行sudo apt-get install出现E: Could not get lock /var/lib/dpkg/lock</title><link>http://www.cppblog.com/wc250en007/archive/2012/07/03/181228.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Tue, 03 Jul 2012 02:19:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/07/03/181228.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/181228.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/07/03/181228.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/181228.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/181228.html</trackback:ping><description><![CDATA[<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 15px 0px; padding-left: 0px; padding-right: 0px; font: 13px/24px 'microsoft yahei', verdana, arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(68,68,68); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">　今天打算在ubuntu下安装个mysql的开发包，谁知道在执行sudo apt-get&nbsp; install libmysqlclient15-dev命令后，却出现了如下错误信息：</p>
<blockquote style="border-bottom: rgb(170,170,170) 1px solid; text-align: left; border-left: rgb(170,170,170) 4px solid; padding-bottom: 10px; widows: 2; text-transform: none; background-color: rgb(204,221,238); text-indent: 0px; margin: 15px auto; padding-left: 15px; padding-right: 15px; font: 12px/20px 'courier new'; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(68,68,68); border-top: rgb(170,170,170) 1px solid; border-right: rgb(170,170,170) 1px solid; word-spacing: 0px; padding-top: 10px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><pre style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: Monaco, Consolas, 'Lucida Console', 'Courier New', serif; font-size: 12px; padding-top: 0px">E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?</pre></blockquote>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 15px 0px; padding-left: 0px; padding-right: 0px; font: 13px/24px 'microsoft yahei', verdana, arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(68,68,68); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">　　刚开始以为是需要停止mysql服务，于是停止mysql后执行sudo apt-get install libmysqlclient15-dev仍然出现这个错误，继续找原因发现，我在执行sudo apt-get install libmysqlclient15-dev之前，执行了sudo apt-get install gnome，而且该过程正在下载资源，等这个安装完后就可以了。</p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 15px 0px; padding-left: 0px; padding-right: 0px; font: 13px/24px 'microsoft yahei', verdana, arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(68,68,68); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><span style="color: rgb(0,0,255)"><strong style="color: rgb(220,37,35)">Could not get lock /var/lib/dpkg/lock解决办法</strong></span></p>
<p style="text-align: left; padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 15px 0px; padding-left: 0px; padding-right: 0px; font: 13px/24px 'microsoft yahei', verdana, arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(68,68,68); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">　　检查下在执行sudo apt-get install的时候，之前的sudo apt-get install是否已经完成，同一时间只能有一个sudo apt-get install在执行！</p><img src ="http://www.cppblog.com/wc250en007/aggbug/181228.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-07-03 10:19 <a href="http://www.cppblog.com/wc250en007/archive/2012/07/03/181228.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Windows平台下虚拟UNIX环境</title><link>http://www.cppblog.com/wc250en007/archive/2012/07/02/181148.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Mon, 02 Jul 2012 08:44:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/07/02/181148.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/181148.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/07/02/181148.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/181148.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/181148.html</trackback:ping><description><![CDATA[<span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 15px/20px arial, 宋体, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">cygwin是一个在windows平台上运行的unix模拟环境，是cygnus solutions公司开发的自由软件（该公司开发了很多好东西，著名的还有eCos，不过现已被Redhat收购）。它对于学习unix/linux操作环境，或者从unix到windows的</span><a style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 15px/20px arial, 宋体, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(19,110,194); word-spacing: 0px; text-decoration: underline; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" href="http://baike.baidu.com/view/330120.htm" target="_blank">应用程序</a><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 15px/20px arial, 宋体, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">移植，或者进行某些特殊的开发工作，尤其是使用gnu工具集在windows上进行</span><a style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 15px/20px arial, 宋体, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(19,110,194); word-spacing: 0px; text-decoration: underline; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" href="http://baike.baidu.com/view/657641.htm" target="_blank">嵌入式系统开发</a><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 15px/20px arial, 宋体, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">，非常有用。随着嵌入式系统开发在国内日渐流行，越来越多的开发者对cygwin产生了兴趣。<br /><br /><br />
<h2 style="border-bottom: rgb(222,223,225) 1px solid; padding-bottom: 6px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; font: bold 18px/24px arial, 宋体, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); clear: both; word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="headline-1 bk-sidecatalog-title"><span class="headline-content">cygwin的工作机制</span></h2><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 15px/24px arial, 宋体, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">　　cygnus当初首先把gcc，gdb，gas等开发工具进行了改进，使他们能够生成并解释win32的目标文件。然后，他们要把这些工具移植到windows平台上去。一种方案是基于win32 api对这些工具的源代码进行大幅修改，这样做显然需要大量工作。因此，他们采取了一种不同的方法&#8212;&#8212;他们写了一个共享库(就是cygwin dll)，把win32 api中没有的unix风格的调用（如fork,spawn,signals,select,sockets等）封装在里面，也就是说，他们基于 win32 api写了一个unix系统库的模拟层。这样，只要把这些工具的源代码和这个共享库连接到一起，就可以使用unix主机上的交叉编译器来生成可以在 windows平台上运行的工具集。以这些移植到windows平台上的开发工具为基础，cygnus又逐步把其他的工具（几乎不需要对源代码进行修改，只需要修改他们的配置脚本）软件移植到windows上来。这样，在windows平台上运行bash和开发工具、用户工具，感觉好像在unix上工作。
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><span style="color: #000000">启动　Cygwin　通常在　Cygwin安装位置，　有一个&nbsp;cygwin.bat&nbsp;的程序,&nbsp;启动他.&nbsp;会进入Uninx控制台.<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />此时这个控制台就可以输入Unix命令了,&nbsp;<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />首先,&nbsp;输入&nbsp;cd&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">cygdrive<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />然后输入&nbsp;ls<br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" />此时应该能够看到你Windows下的所有盘符,&nbsp;这里cygwin映射了你的所有硬盘的盘符名字为对应的文件夹.<img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /><br /><img align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif"  alt="" /></span></div><br /><br /><br /><br /></span>原文地址：<a href="http://baike.baidu.com/view/3968.htm">http://baike.baidu.com/view/3968.htm</a></span> <img src ="http://www.cppblog.com/wc250en007/aggbug/181148.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-07-02 16:44 <a href="http://www.cppblog.com/wc250en007/archive/2012/07/02/181148.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下vim命令详解</title><link>http://www.cppblog.com/wc250en007/archive/2012/06/28/180652.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Thu, 28 Jun 2012 08:25:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/06/28/180652.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/180652.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/06/28/180652.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/180652.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/180652.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 高级一些的编辑器，都会包含宏功能，vim当然不能缺少了，在vim中使用宏是非常方便的：:qx&nbsp;&nbsp;&nbsp;&nbsp; 开始记录宏，并将结果存入寄存器xq&nbsp;&nbsp;&nbsp;&nbsp; 退出记录模式@x&nbsp;&nbsp;&nbsp;&nbsp; 播放记录在x寄存器中的宏命令稍微解释一下，当在normal模式下输入:qx后，你对文本的所有编辑动作将会被记...&nbsp;&nbsp;<a href='http://www.cppblog.com/wc250en007/archive/2012/06/28/180652.html'>阅读全文</a><img src ="http://www.cppblog.com/wc250en007/aggbug/180652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-06-28 16:25 <a href="http://www.cppblog.com/wc250en007/archive/2012/06/28/180652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu中如何查看自身的IP地址</title><link>http://www.cppblog.com/wc250en007/archive/2012/06/28/180646.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Thu, 28 Jun 2012 07:37:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/06/28/180646.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/180646.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/06/28/180646.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/180646.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/180646.html</trackback:ping><description><![CDATA[<span style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; display: inline !important; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">大家都知道在Windows中查看自己的IP可以通过在命令行中输入"ipconfig /all"的方式进行，但是这种方法在以Ubuntu为代表的Linux中是无法进行的，那么应该采用什么方式呢？</span><br style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; display: inline !important; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">　　其实也很简单，打开终端，在命令行中输入<strong>ifconfig</strong>，回车后就会出现在windows中的ipconfig近乎相同的结果，甚至比windows显示的还要全面，如下图所示：</span><br style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; display: inline !important; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">　　　</span><br style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; display: inline !important; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">　　需要说明的是，eth0和eth1分别代表了两块网卡，以我使用的机器DELL D600为例，eth0代表Broadcom 5705千兆网卡，eth1则表示为Intel wireless 2200无线网卡。<br /><br /><a style="widows: 2; text-transform: none; background-color: rgb(249,249,249); text-indent: 0px; font: 14px/24px Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(34,34,156); word-spacing: 0px; text-decoration: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" href="http://www.linuxdiyf.com/bbs/attachments/forumid_63/20080707_0324935d5b49206c1aeaRlt4ghL6pQQn.jpg" target="_blank"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" src="http://www.linuxdiyf.com/bbs/attachments/forumid_63/20080707_0324935d5b49206c1aeaRlt4ghL6pQQn.jpg" width="400"  alt="" /></a></span><img src ="http://www.cppblog.com/wc250en007/aggbug/180646.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-06-28 15:37 <a href="http://www.cppblog.com/wc250en007/archive/2012/06/28/180646.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu 查看和杀死进程</title><link>http://www.cppblog.com/wc250en007/archive/2012/06/28/180644.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Thu, 28 Jun 2012 07:29:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/06/28/180644.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/180644.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/06/28/180644.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/180644.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/180644.html</trackback:ping><description><![CDATA[<div style="widows: 2; text-transform: none; text-indent: 0px; font: bold 14px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; margin-bottom: 10px; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><a style="color: rgb(26,139,200); text-decoration: none" id="viewpost1_TitleUrl" href="http://www.blogjava.net/fl1429/archive/2009/06/11/281405.html">Ubuntu 查看和杀死进程</a></div><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">今天在netbeans中关闭webrick时,发现没有关闭掉,打入localhost:3000 依然显示页面,发现无法从nb中再次关闭</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">只有进入ubuntu的进程下关闭</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">查看进程:</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">1,ps -e 命令&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">2,feng@feng:~$ sudo netstat -antup</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Active Internet connections (servers and established)</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Proto Recv-Q Send-Q Local Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Foreign Address&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; State&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PID/Program name</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 127.0.0.1:631&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4672/cupsd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0.0.0.0:3000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7082/ruby&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 192.168.1.102:41121&nbsp;&nbsp;&nbsp;&nbsp; 66.113.164.119:80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED 5709/firefox&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 192.168.1.102:44746&nbsp;&nbsp;&nbsp;&nbsp; 209.85.201.125:5222&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED 6130/pidgin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 192.168.1.102:54797&nbsp;&nbsp;&nbsp;&nbsp; 192.168.1.128:3306&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED 7082/ruby&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 192.168.1.102:43466&nbsp;&nbsp;&nbsp;&nbsp; 64.4.34.77:1863&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED 6130/pidgin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 192.168.1.102:41999&nbsp;&nbsp;&nbsp;&nbsp; 64.233.189.19:443&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED 5709/firefox&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 192.168.1.102:54900&nbsp;&nbsp;&nbsp;&nbsp; 58.251.60.53:80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ESTABLISHED 6130/pidgin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 192.168.1.102:34180&nbsp;&nbsp;&nbsp;&nbsp; 220.181.37.210:80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TIME_WAIT&nbsp;&nbsp; -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">tcp6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 ::1:42801&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :::*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6863/java&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">udp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0.0.0.0:68&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5161/dhclient&nbsp;&nbsp;&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">udp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0.0.0.0:5353&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4625/avahi-daemon:&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">udp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 0.0.0.0:56699&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0.0.0.0:*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4625/avahi-daemon:&nbsp;</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">杀死webrick的进程:</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">feng@feng:~$ sudo kill 7082</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">2法：</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,129,189); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">譬如</span><span style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,129,189); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">Firefox</span><span style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(79,129,189); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">现在僵死，无法相应请求。打开一个终端，输入：</span> 
<p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><span style="color: rgb(79,129,189)">pgrep firefox</span></p>
<p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><span style="color: rgb(79,129,189)">会返回数值，譬如是</span><span style="color: rgb(79,129,189)">7198.</span><span style="color: rgb(79,129,189)">现在输入：</span></p>
<p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><span style="color: rgb(79,129,189)">kill 7198</span></p>
<p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><span style="color: rgb(79,129,189)">就会杀死</span><span style="color: rgb(79,129,189)">Firefox</span><span style="color: rgb(79,129,189)">进程了。</span></p>
<p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><span style="color: rgb(79,129,189)">你也可以使用</span><span style="color: rgb(79,129,189)">killall</span><span style="color: rgb(79,129,189)">命令。</span><span style="color: rgb(79,129,189)">killall</span><span style="color: rgb(79,129,189)">可以使用程序的名称，譬如输入：</span></p>
<p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><span style="color: rgb(79,129,189)">killall firefox</span></p>
<p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><br /></p>
<p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><span style="color: rgb(79,129,189)">3法</span></p>
<p style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" align="left"><span style="color: rgb(79,129,189)">如果前两者还是杀不死，用 kill -9 pid 命令,来绝杀<br /></span></p><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">ref:</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">http://hi.baidu.com/lidongxing1005/blog/item/63c65dec28dfae4779f05566.html</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">http://hi.baidu.com/camark/blog/item/fb918dca3e237981c81768e6.html</span><br style="widows: 2; text-transform: none; text-indent: 0px; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 13px/19px Verdana, Geneva, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(75,75,75); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">http://hi.baidu.com/strive_boy/blog/item/d3020b1865efd6b14aedbcd2.html</span><img src ="http://www.cppblog.com/wc250en007/aggbug/180644.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-06-28 15:29 <a href="http://www.cppblog.com/wc250en007/archive/2012/06/28/180644.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Subversion命令汇总(转)</title><link>http://www.cppblog.com/wc250en007/archive/2012/06/28/180643.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Thu, 28 Jun 2012 06:51:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/06/28/180643.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/180643.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/06/28/180643.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/180643.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/180643.html</trackback:ping><description><![CDATA[<div style="padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font: 14px/25px verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" id="cnblogs_post_body">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn 命令共同的选项</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--targets list 读取list并将其解释为一个将要操作的参数列表</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--non-recurisive, &#8211;N 只操作单个目录，不处理子目录</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--verbose, &#8211;v 打印额外的信息</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--quiet, &#8211;q 打印的信息尽可能少</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--username,&nbsp; name 指定在连接授权时使用的用户名</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--password, pawd 指定要使用的密码</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--no-auth-cache 不要缓存身份令牌</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--non-interactive 不要提示输入额外的信息</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--config-dir&nbsp; dir&nbsp; 从dir读取用户配置</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--editor-cm cmd 使用cmd作为日志消息的编辑器</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn add</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">把文件及目录的名称添加给版本控制系统。他们会在下次提交时被添加到项目仓库</p></blockquote>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn add path</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--auto-props 在添加他们的时候自动设置文件的属性</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--no-auto-props 禁用自动属性设置</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn blame</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">显示文件每行的版本及作者信息</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--revision, &#8211;r rev 如果指定的rev是单个版本，显示该版本作者信息。如果是范围rev1:rev2, 显示rev2版本作者的信息，但只检查版本到rev1.</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn cat</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">输出指定文件或者URL的内容</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn cat target&#8230;</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--revision, &#8211;r rev</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn checkout</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">从项目仓库牵出一个工作拷贝</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn checkout url&#8230;path</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">如果没有指定path,签出的本地目录名使用URL的base name.</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn cleanup</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">清理工作拷贝，移除锁，完成未完成的操作，等等。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn cleanup path&#8230;</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn commit path</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">把改动从你的工作拷贝发送到项目仓库</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--message, &#8211;m msg 使用msg作为提交日志消息。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--file, &#8211;F file 使用file的内容作为提交日志消息。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--no-unlock 不要在提交的时候释放锁。</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn copy</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">在工作拷贝或者项目仓库中制造包括历史在内的复本</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn copy src dest</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">src和dest可以是工作拷贝(WC)的路径或者URL.</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">src dest 效果&#8230;&#8230;</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">WC WC 拷贝并添加</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">WC URL 立即提交WC的拷贝到URL</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">URL WC 签出URL到WC, 添加</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">URL URL 完全服务器端拷贝；用于制作分支和打标签</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--revision, &#8211;r rev要拷贝的src的版本。只在src是项目仓库的URL时才有意义。</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn delete target</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">从项目仓库删除文件或者目录。如果target是工作拷贝中的文件或者目录，它被从工作拷贝中移除并且预计在下次提交时删除掉。如果target是项目仓库URL,通过一次立即的提交从项目仓库中删除。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--message, &#8211;m msg</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--file, &#8211;F file</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn diff</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">显示两个路径之间的差异</p></blockquote>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn diff &#8211;r rev1:rev2 target&#8230;</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn diff oldurl newurl</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn export</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">创建一个无版本记录的拷贝.</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn export &#8211;r rev URL path</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">从项目仓库的指定URL导出一个干净的目录树到path中，如果指定了rev参数，导出rev版本的，否则到处最新版本。</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn import</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">提交一个无版本的文件或者树到项目仓库</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn import path URL</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn info</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">显示文件或者目录的信息。</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn list</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">列出项目仓库中的目录条数。</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn lock</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">锁住文件让其它用户不能提交改动。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn lock target</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--message, &#8211;m msg 使用msg作为锁信息消息</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--force 强制加锁成功，通过从其他用户或者工作拷贝把锁给偷过来。</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn log</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">显示一些版本或者文件的日志消息.</p></blockquote>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--stop-on-copy 在遍历历史的时候不要穿越拷贝（对于查找分支的起点很有用）</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn merge</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">把两个来源的差异应用给工作拷贝路径。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn merge &#8211;r rev1:rev2&nbsp; source wcpath</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn mkdir</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">创建版本控制下的新目录</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn mkdir target</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn move src dest</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">移动或者重命名工作拷贝或者项目仓库中文件或者目录。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--revision, &#8211;r rev使用版本rev作为源来执行这次移动。</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn propdel</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">删除文件或者目录的属性</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn propdel propname path&#8230;</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn propedit</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">编辑文件或者目录的属性</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn propedit propname path&#8230;</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn propget</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">打印文件或者目录的属性值</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn propget propname path&#8230;</p></blockquote>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--strict 禁用额外的换行和其它的美化措施（在把二进制属性重定向到文件时会有用处)</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn proplist</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">列出文件或者目录的所有属性</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--verbose</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--recursive</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--revision, &#8211;r rev 列出path在版本rev定义的属性</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn propset(pset, ps)</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn propset propname propval path&#8230;</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--file, &#8211;F file 读取file的内容，使用它作为属性值.</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--recursive</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--encoding&nbsp; enc 把值作为用enc编码的字符集</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn resolved</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">移除工作拷贝文件或者目录的冲突状态</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--recursive</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn revert</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">恢复工作拷贝的文件（撤销最新的本地修改）</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn revert path 这个命令不需要网络连接</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--recursive</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn status</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">打印工作拷贝中文件或者目录的状态</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn status path&#8230;</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--show-updates, &#8211;u 联系服务器显示更新信息</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--no-ignore 忽视默认设置和svn:ignore属性设置的忽略项</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--non-recursive, &#8211;N</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--verbose, &#8211;v</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn switch</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">把工作拷贝转向到其他的URL</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn switch URL path</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">更新工作拷贝让其使用项目仓库的新URL.这个行为类似svn update 而且是一种把工作拷贝转向到同一项目仓库中的分支或者标签的办法。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--revision, &#8211;r rev 转向到版本rev</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--non-recursive, &#8211;N</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--diff3-cm 使用cmd作为合并命令</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn unlock</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">解开工作拷贝文件或者项目仓库URL的锁。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn unlock target&#8230;</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--force 砸坏现有对target的锁，甚至它不是被当前工作拷贝所拥有的。</p></blockquote>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px"><strong style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn update</strong></p>
<blockquote style="background-image: none; border-bottom: rgb(239,239,239) 2px solid; border-left: rgb(239,239,239) 2px solid; padding-bottom: 5px; margin: 10px 0px 10px 25px; padding-left: 10px; padding-right: 10px; color: rgb(51,51,51); border-top: rgb(239,239,239) 2px solid; border-right: rgb(239,239,239) 2px solid; padding-top: 5px">
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">把改动从项目仓库带到工作拷贝来。</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">svn update path&#8230;</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--revision, &#8211;r rev 更新到版本rev</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--non-recrusive, &#8211;N</p>
<p style="padding-bottom: 0px; text-indent: 0px; margin: 5px auto; padding-left: 0px; padding-right: 0px; padding-top: 0px">--diff3-cmd</p></blockquote></div>
<div style="padding-bottom: 0px; widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; margin: 10px 0px 0px; padding-left: 0px; padding-right: 0px; font: 14px/25px verdana, Arial, Helvetica, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(51,51,51); word-spacing: 0px; padding-top: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" id="MySignature"><span style="padding-bottom: 0px; line-height: 24px; margin: 0px; padding-left: 0px; padding-right: 0px; font-family: verdana, ����, Arial; color: rgb(51,51,51); padding-top: 0px" class="Apple-style-span">作者: 王德水<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />出处：http://www.cnblogs.com/cnblogsfans<br style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px" />版权：本文版权归作者和博客园共有,转载需经作者同意。</span></div><img src ="http://www.cppblog.com/wc250en007/aggbug/180643.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-06-28 14:51 <a href="http://www.cppblog.com/wc250en007/archive/2012/06/28/180643.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ubuntu系统下关于环境变量的修改(转)</title><link>http://www.cppblog.com/wc250en007/archive/2012/06/28/180642.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Thu, 28 Jun 2012 06:50:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/06/28/180642.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/180642.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/06/28/180642.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/180642.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/180642.html</trackback:ping><description><![CDATA[<div style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 12px/18px Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; margin-bottom: 15px; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="blog_title"><span style="font-size: medium">环境变量分为系统环境变量和用户环境变量</span></div>
<div style="text-align: left; widows: 2; text-transform: none; text-indent: 0px; font: 14px/1.8em Helvetica, Tahoma, Arial, sans-serif; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" id="blog_content" class="blog_content">
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px"><span style="color: rgb(0,0,128); font-size: medium">Ubuntu下查看环境变量：</span></p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">查看当前环境变量命令为：env &nbsp;</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">当然可以查看某一个模块的配置信息，比如要查看elipse的配置 可以用执行：env | grep eclipse &nbsp;</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">有如下输出：</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">OLDPWD=/home/runner/eclipse</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games/:$~/<span style="color: rgb(255,102,0)">eclipse</span></p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">查看当前Shell的环境变量：<span style="line-height: 22px; font-size: 15px">~$&nbsp;<span style="line-height: 22px; color: rgb(255,0,255)">echo $PATH&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp; # 显示当前环境变量</span></p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp;</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">~$<span class="Apple-converted-space">&nbsp;</span><span style="color: rgb(51,102,255)">echo $PATH</span></p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games/:$~/eclipse</p>
<p style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp;</p>
<div><span style="color: rgb(0,0,128); font-size: medium">系统环境变量：</span></div>
<div><br /></div>
<div><span>
<p style="padding-bottom: 0px; line-height: 21px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">/etc/profile：此文件为系统的每个用户设置环境信息，当用户登录时，该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。</p>
<p style="padding-bottom: 0px; line-height: 21px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">/etc/bashrc：为每一个运行bash shell的用户执行此文件。当bash shell被打开时，该文件被读取。</p></span></div>
<div><br /></div>
<div><span style="color: rgb(0,0,128); font-size: medium">当前用户变量：</span></div>
<div><br /></div>
<div><span>~/.bashrc：该文件包含专用于你的bash shell的bash信息，当登录时以及每次打开新的shell时，该该文件被读取。</span></div>
<div><br /></div>
<div><br /></div>
<div><span style="color: rgb(0,0,128); font-size: medium">Ubuntu下设置环境变量：</span></div>
<div><br /></div>
<div><br /></div>
<div>1. 该<span style="line-height: 22px; font-size: 15px">方法只在一个终端中生效，另外打开新的终端发现PATH还是原来的PATH</span></div>
<div><span style="line-height: 22px; font-size: 14px">
<p style="padding-bottom: 0px; line-height: 22px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">~$&nbsp;<span style="line-height: 22px; color: rgb(255,0,255)">echo $PATH&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp; # 显示当前环境变量（也就是显示/etc/environment文件）<br style="line-height: 22px" /><span style="line-height: 22px; color: rgb(180,95,6)">/usr/local/sbin:/usr/local/bin</span>&nbsp;&nbsp;&nbsp; # 显示举例，多个路径中间用&#8220;:&#8221;隔开<br style="line-height: 22px" />~$&nbsp;<span style="line-height: 22px; color: rgb(255,0,255)">PATH="$PATH:/home/workdir"</span>&nbsp;&nbsp;&nbsp; # 添加&#8220;/home/workdir&#8221;目录<br style="line-height: 22px" /><span style="line-height: 22px; color: rgb(180,95,6)">/usr/local/sbin:/usr/local/bin:/home/workdir</span>&nbsp;&nbsp; # 显示举例，多个路径中间仍用&#8220;:&#8221;隔开</p>
<p style="padding-bottom: 0px; line-height: 22px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">则添加成功！（最后当然可以重启或者输出使其即时生效：）<br style="line-height: 22px" />~$&nbsp;<span style="line-height: 22px; color: rgb(255,0,255)">export PATH</span><br style="line-height: 22px" />~$<span style="line-height: 22px; color: rgb(255,0,255)">&nbsp;cd &nbsp; &nbsp;#执行cd命令后面什么都不加，可以回到当前登录用户的宿主目录</span><br style="line-height: 22px" />~$&nbsp;<span style="line-height: 22px; color: rgb(255,0,255)">source .bashrc</span>&nbsp;&nbsp;&nbsp;&nbsp; #该命令需在主目录下才能运行，否则提示找不到.bashrc命令<span style="line-height: 22px; color: rgb(0,0,255)"><br style="line-height: 22px" /></span>结束！</p>
<p style="padding-bottom: 0px; line-height: 22px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">2. &nbsp;该方法全局有效</p>
<p style="padding-bottom: 0px; line-height: 22px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp; &nbsp; &nbsp;当然也可以之间打开/etc/environment文件，来进行修改</p>
<p style="padding-bottom: 0px; line-height: 22px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp; ～$ gedit &nbsp;/etc/environment&nbsp;</p>
<p style="padding-bottom: 0px; line-height: 22px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">&nbsp; 然后添加你想添加的路径，中间用":" 分割</p>
<p style="padding-bottom: 0px; line-height: 22px; margin: 0px 0px 10px; padding-left: 0px; padding-right: 0px; padding-top: 0px">3. 由于看不懂~/.bashrc 文件怎么配置的环境变量，所以就不知到了。不介绍</p></span></div></div><img src ="http://www.cppblog.com/wc250en007/aggbug/180642.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-06-28 14:50 <a href="http://www.cppblog.com/wc250en007/archive/2012/06/28/180642.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux下Makefile的automake生成全攻略(转)</title><link>http://www.cppblog.com/wc250en007/archive/2012/06/27/180478.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Wed, 27 Jun 2012 06:19:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/06/27/180478.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/180478.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/06/27/180478.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/180478.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/180478.html</trackback:ping><description><![CDATA[<p>作为Linux下的程序开发人员，大家一定都遇到过Makefile，用make命令来编译自己写的程序确实是很方便。一般情况下，大家都是手工写一个简单Makefile，如果要想写出一个符合自由软件惯例的Makefile就不那么容易了。 <br />autoconf和automake两个工具来帮助我们自动地生成符合自由软件惯例的Makefile，这样就可以象常见的GNU程序一样，只要使用&#8220;./configure&#8221;，&#8220;make&#8221;，&#8220;make instal&#8221;就可以把程序安装到Linux系统中去了。这将特别适合想做开放源代码软件的程序开发人员，又或如果你只是自己写些小的Toy程序，那么这个文章对你也会有很大的帮助。</p>
<p>一、Makefile介绍</p>
<p>　　Makefile是用于自动编译和链接的，一个工程有很多文件组成，每一个文件的改变都会导致工程的重新链接，但是不是所有的文件都需要重新编译，Makefile中纪录有文件的信息，在make时会决定在链接的时候需要重新编译哪些文件。</p>
<p>　　Makefile的宗旨就是：让编译器知道要编译一个文件需要依赖其他的哪些文件。当那些依赖文件有了改变，编译器会自动的发现最终的生成文件已经过时，而重新编译相应的模块。</p>
<p>　　Makefile的基本结构不是很复杂，但当一个程序开发人员开始写Makefile时，经常会怀疑自己写的是否符合惯例，而且自己写的Makefile经常和自己的开发环境相关联，当系统环境变量或路径发生了变化后，Makefile可能还要跟着修改。这样就造成了手工书写Makefile的诸多问题，automake恰好能很好地帮助我们解决这些问题。</p>
<p>　　使用automake，程序开发人员只需要写一些简单的含有预定义宏的文件，由autoconf根据一个宏文件生成configure，由automake根据另一个宏文件生成Makefile.in，再使用configure依据Makefile.in来生成一个符合惯例的Makefile。下面我们将详细介绍Makefile的automake生成方法。</p>
<p>　　二、使用的环境</p>
<p>　　本文所提到的程序是基于Linux发行版本：Fedora Core release 1，它包含了我们要用到的autoconf，automake。</p>
<p>　　三、从helloworld入手</p>
<p>　　我们从大家最常使用的例子程序helloworld开始。</p>
<p>　　下面的过程如果简单地说来就是：</p>
<p>　　新建三个文件：</p>
<p>　　　helloworld.c<br />　　　configure.in<br />　　　Makefile.am</p>
<p>　　然后执行：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">aclocal;&nbsp;autoconf;&nbsp;automake&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">add</span><span style="color: #000000">-</span><span style="color: #000000">missing;&nbsp;.</span><span style="color: #000000">/</span><span style="color: #000000">configure;&nbsp;make;&nbsp;.</span><span style="color: #000000">/</span><span style="color: #000000">helloworld</span></div>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 就可以看到Makefile被产生出来，而且可以将helloworld.c编译通过。</p>
<p>　　很简单吧，几条命令就可以做出一个符合惯例的Makefile，感觉如何呀。</p>
<p>　　现在开始介绍详细的过程：</p>
<p>　　1、建目录</p>
<p>　　在你的工作目录下建一个helloworld目录，我们用它来存放helloworld程序及相关文件，如在/home/my/build下：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">$&nbsp;mkdir&nbsp;helloword<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />$&nbsp;cd&nbsp;helloworld</span></div>
<p><br /></p>
<p>2、 helloworld.c</p>
<p>　　然后用你自己最喜欢的编辑器写一个hellowrold.c文件，如命令：vi helloworld.c。使用下面的代码作为helloworld.c的内容。</p>
<p>&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;main(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;argc,&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">**</span><span style="color: #000000">&nbsp;argv)<br /><img id="Codehighlighter1_32_78_Open_Image" onclick="this.style.display='none'; Codehighlighter1_32_78_Open_Text.style.display='none'; Codehighlighter1_32_78_Closed_Image.style.display='inline'; Codehighlighter1_32_78_Closed_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif"><img style="display: none" id="Codehighlighter1_32_78_Closed_Image" onclick="this.style.display='none'; Codehighlighter1_32_78_Closed_Text.style.display='none'; Codehighlighter1_32_78_Open_Image.style.display='inline'; Codehighlighter1_32_78_Open_Text.style.display='inline';" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif"></span><span style="border-bottom: #808080 1px solid; border-left: #808080 1px solid; background-color: #ffffff; display: none; border-top: #808080 1px solid; border-right: #808080 1px solid" id="Codehighlighter1_32_78_Closed_Text"><img alt="" src="http://www.cppblog.com/Images/dot.gif" /></span><span id="Codehighlighter1_32_78_Open_Text"><span style="color: #000000">{<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" />printf(</span><span style="color: #000000">"</span><span style="color: #000000">Hello,&nbsp;Linux&nbsp;World!\n</span><span style="color: #000000">"</span><span style="color: #000000">);<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" /></span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" />}</span></span></div>
<p><br /></p>
<p>　　完成后保存退出。</p>
<p>　　现在在helloworld目录下就应该有一个你自己写的helloworld.c了。</p>
<p>3、生成configure</p>
<p>　　我们使用autoscan命令来帮助我们根据目录下的源代码生成一个configure.in的模板文件。 　　命令：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">$&nbsp;autoscan<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />$&nbsp;ls<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />configure.scan&nbsp;helloworld.c</span></div>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 执行后在hellowrold目录下会生成一个文件：configure.scan，我们可以拿它作为configure.in的蓝本。</p>
<p>　　现在<span style="color: red">将configure.scan改名为configure.in</span>，(mv命令重命名 mv configure.scan configure.in)并且编辑它，按下面的内容修改，去掉无关的语句：</p>
<p>&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">============================</span><span style="color: #000000">configure.in内容开始</span><span style="color: #000000">=========================================</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />#&nbsp;</span><span style="color: #000000">-*-</span><span style="color: #000000">&nbsp;Autoconf&nbsp;</span><span style="color: #000000">-*-</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />#&nbsp;Process&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">&nbsp;file&nbsp;with&nbsp;autoconf&nbsp;to&nbsp;produce&nbsp;a&nbsp;configure&nbsp;script.<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: red">AC_INIT<img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">(helloworld.c)<br /></span><span style="color: red">AM_INIT_AUTOMAKE</span><span style="color: #000000">(helloworld,&nbsp;</span><span style="color: #000000">1.0</span><span style="color: #000000">)<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />#&nbsp;Checks&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;programs.<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />AC_PROG_CC<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />#&nbsp;Checks&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;libraries.<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />#&nbsp;Checks&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;header&nbsp;files.<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />#&nbsp;Checks&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;typedefs,&nbsp;structures,&nbsp;and&nbsp;compiler&nbsp;characteristics.<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />#&nbsp;Checks&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;library&nbsp;functions.<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: red">AC_OUTPUT(Makefile)</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">============================</span><span style="color: #000000">configure.in内容结束</span><span style="color: #000000">=========================================</span></div>
<p>然后<strong>执行命令aclocal和autoconf</strong>，<strong>分别会产生aclocal.m4及configure两个文件</strong>：</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">$&nbsp;aclocal&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />$ls&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><strong>aclocal.m4</strong>&nbsp;configure.</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;helloworld.c&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />$&nbsp;autoconf&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />$&nbsp;ls&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />aclocal.m4&nbsp;autom4te.cache&nbsp;configure&nbsp;configure.</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;helloworld.c</span></div>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 大家可以看到configure.in内容是一些宏定义，这些宏经autoconf处理后会变成检查系统特性、环境变量、软件必须的参数的shell脚本。</p>
<p>　　autoconf 是用来生成自动配置软件源代码脚本（configure）的工具。configure脚本能独立于autoconf运行，且在运行的过程中，不需要用户的干预。</p>
<p>　　要生成configure文件，你必须告诉autoconf如何找到你所用的宏。方式是使用aclocal程序来生成你的aclocal.m4。</p>
<p>　　aclocal根据configure.in文件的内容，自动生成aclocal.m4文件。aclocal是一个perl 脚本程序，它的定义是：&#8220;aclocal - create aclocal.m4 by scanning configure.ac&#8221;。</p>
<p>　　autoconf从configure.in这个列举编译软件时所需要各种参数的模板文件中创建configure。</p>
<p>　　autoconf需要GNU m4宏处理器来处理aclocal.m4，生成configure脚本。</p>
<p>　　m4是一个宏处理器。将输入拷贝到输出，同时将宏展开。宏可以是内嵌的，也可以是用户定义的。除了可以展开宏，m4还有一些内建的函数，用来引用文件，执行命令，整数运算，文本操作，循环等。m4既可以作为编译器的前端，也可以单独作为一个宏处理器。</p>
<p><br />&nbsp;</p>
<p>4、新建Makefile.am</p>
<p>　　新建Makefile.am文件，命令：</p>
<p>&nbsp;</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">$&nbsp;vi&nbsp;Makefile.am</span></div>
<p><span style="widows: 2; text-transform: none; background-color: rgb(237,240,245); text-indent: 0px; display: inline !important; font: 15px/19px Simsun; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">内容如下:</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">AUTOMAKE_OPTIONS</span><span style="color: #000000">=</span><span style="color: #000000">foreign<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />bin_PROGRAMS</span><span style="color: #000000">=</span><span style="color: #000000">helloworld<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />helloworld_SOURCES</span><span style="color: #000000">=</span><span style="color: #000000">helloworld.c</span></div>
<p></span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <strong>automake会根据你写的Makefile.am来自动生成Makefile.in</strong>。</p>
<p>　　Makefile.am中定义的宏和目标,会指导automake生成指定的代码。例如，宏bin_PROGRAMS将导致编译和连接的目标被生成。</p>
<p>5、运行automake</p>
<p>　　命令：</p>
<p>&nbsp;&nbsp;&nbsp; <span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 14px/25px Arial; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">使用automake对其生成&#8220;configure.in&#8221;文件，在这里使用选项&#8220;&#8212;adding-missing&#8221;可以让automake自动添加有一些必需的脚本文件。</span><br style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; font: 14px/25px Arial; white-space: normal; orphans: 2; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">$&nbsp;automake&nbsp;</span><span style="color: #000000">--</span><span style="color: #000000">add</span><span style="color: #000000">-</span><span style="color: #000000">missing<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />configure.</span><span style="color: #0000ff">in</span><span style="color: #000000">:&nbsp;installing&nbsp;`.</span><span style="color: #000000">/</span><span style="color: #000000">install</span><span style="color: #000000">-</span><span style="color: #000000">sh</span><span style="color: #000000">'<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">configure.</span><span style="color: #0000ff">in</span><span style="color: #000000">:&nbsp;installing&nbsp;`.</span><span style="color: #000000">/</span><span style="color: #000000">mkinstalldirs</span><span style="color: #000000">'<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">configure.</span><span style="color: #0000ff">in</span><span style="color: #000000">:&nbsp;installing&nbsp;`.</span><span style="color: #000000">/</span><span style="color: #000000">missing</span><span style="color: #000000">'<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">Makefile.am:&nbsp;installing&nbsp;`.</span><span style="color: #000000">/</span><span style="color: #000000">depcomp</span><span style="color: #000000">'</span></div>
<p>&nbsp;&nbsp; &nbsp;automake会根据Makefile.am文件产生一些文件，包含最重要的Makefile.in。</p>
<p>6、执行configure生成Makefile,<span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; display: inline !important; font: 14px/25px Arial; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">在这一步中，通过运行自动配置设置文件configure，把Makefile.in变成了最终的Makefile。</span></p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />$&nbsp;<strong>.</strong></span><span style="color: #000000"><strong>/</strong></span><span style="color: #000000"><strong>configure&nbsp;<br /></strong><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;a&nbsp;BSD</span><span style="color: #000000">-</span><span style="color: #000000">compatible&nbsp;install<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">usr</span><span style="color: #000000">/</span><span style="color: #000000">bin</span><span style="color: #000000">/</span><span style="color: #000000">install&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">c<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;whether&nbsp;build&nbsp;environment&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;sane<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;yes<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;gawk<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;gawk<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;whether&nbsp;make&nbsp;sets&nbsp;$(MAKE)<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;yes<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;gcc<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;gcc<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;C&nbsp;compiler&nbsp;</span><span style="color: #0000ff">default</span><span style="color: #000000">&nbsp;output<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;a.</span><span style="color: #0000ff">out</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;whether&nbsp;the&nbsp;C&nbsp;compiler&nbsp;works<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;yes<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;whether&nbsp;we&nbsp;are&nbsp;cross&nbsp;compiling<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;no<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;suffix&nbsp;of&nbsp;executables<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;suffix&nbsp;of&nbsp;</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;files<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;o<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;whether&nbsp;we&nbsp;are&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;the&nbsp;GNU&nbsp;C&nbsp;compiler<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;yes<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;whether&nbsp;gcc&nbsp;accepts&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">g<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;yes<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;gcc&nbsp;option&nbsp;to&nbsp;accept&nbsp;ANSI&nbsp;C<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;none&nbsp;needed<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;style&nbsp;of&nbsp;include&nbsp;used&nbsp;by&nbsp;make<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;GNU<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />checking&nbsp;dependency&nbsp;style&nbsp;of&nbsp;gcc<img alt="" src="http://www.cppblog.com/Images/dot.gif" />&nbsp;gcc3<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />configure:&nbsp;creating&nbsp;.</span><span style="color: #000000">/</span><span style="color: #000000">config.status<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />config.status:&nbsp;creating&nbsp;Makefile<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />config.status:&nbsp;executing&nbsp;depfiles&nbsp;commands<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />$&nbsp;ls&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">l&nbsp;Makefile<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">-</span><span style="color: #000000">rw</span><span style="color: #000000">-</span><span style="color: #000000">rw</span><span style="color: #000000">-</span><span style="color: #000000">r</span><span style="color: #000000">--</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;yutao&nbsp;yutao&nbsp;</span><span style="color: #000000">15035</span><span style="color: #000000">&nbsp;Oct&nbsp;</span><span style="color: #000000">15</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">10</span><span style="color: #000000">:</span><span style="color: #000000">40</span><span style="color: #000000">&nbsp;Makefile</span></div>
<p>&nbsp;&nbsp;&nbsp; 你可以看到，此时Makefile已经产生出来了。</p>
<p>7、使用Makefile编译代码</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">$&nbsp;make<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;gcc&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">DPACKAGE_NAME</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">DPACKAGE_TARNAME</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">DPACKAGE_VERSION</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />DPACKAGE_STRING</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">DPACKAGE_BUGREPORT</span><span style="color: #000000">=</span><span style="color: #000000">""</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">DPACKAGE</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">helloworld</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">DVERSION</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">1.0</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">-</span><span style="color: #000000">I.&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">I.&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">g&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">O2&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">MT&nbsp;helloworld.o&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">MD&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">MP&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">MF&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">.deps/helloworld.Tpo</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;\<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">-</span><span style="color: #000000">c&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">o&nbsp;helloworld.o&nbsp;`test&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">f&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">helloworld.c</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;echo&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">./</span><span style="color: #000000">'</span><span style="color: #000000">`helloworld.c;&nbsp;\<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />then&nbsp;mv&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">f&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">.deps/helloworld.Tpo</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">.deps/helloworld.Po</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;\<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;rm&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">f&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">.deps/helloworld.Tpo</span><span style="color: #000000">"</span><span style="color: #000000">;&nbsp;exit&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">;&nbsp;\<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />fi<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />gcc&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">g&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">O2&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">o&nbsp;helloworld&nbsp;helloworld.o</span></div>
<p><span style="widows: 2; text-transform: none; background-color: rgb(237,240,245); text-indent: 0px; display: inline !important; font: 15px/19px Simsun; white-space: normal; orphans: 2; float: none; letter-spacing: normal; color: rgb(0,0,0); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">运行helloworld</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />$&nbsp;.</span><span style="color: #000000">/</span><span style="color: #000000">helloworld&nbsp;<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />Hello,&nbsp;Linux&nbsp;World</span><span style="color: #000000">!</span></div>
<p></span>这样helloworld就编译出来了，你如果按上面的步骤来做的话，应该也会很容易地编译出正确的helloworld文件。你还可以试着使用一些其他的make命令，如make clean，make install，make dist，看看它们会给你什么样的效果。<br /><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/wc250en007/75bff996-1e11-3bd0-ae78-8ff04d438d61.gif" /><br /><br /></p>
<p>　四、深入浅出</p>
<p>　　针对上面提到的各个命令，我们再做些详细的介绍。</p>
<p>　　1、 autoscan</p>
<p>　　autoscan是用来扫描源代码目录生成configure.scan文件的。autoscan可以用目录名做为参数，但如果你不使用参数的话，那么autoscan将认为使用的是当前目录。autoscan将扫描你所指定目录中的源文件，并创建configure.scan文件。</p>
<p>　　2、 configure.scan</p>
<p>　　configure.scan包含了<br />&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统配置的基本选项，里面都是一些宏定义。我们需要将它改名为configure.in</p>
<p>　　3、 aclocal</p>
<p>　　aclocal是一个perl 脚本程序。aclocal根据configure.in文件的内容，自动生成aclocal.m4文件。aclocal的定义是：&#8220;aclocal - create aclocal.m4 by scanning configure.ac&#8221;。</p>
<p>　　4、 autoconf</p>
<p>　　autoconf是用来产生configure文件的。configure是一个脚本，它能设置源程序来适应各种不同的操作系统平台，并且根据不同的系统来产生合适的Makefile，从而可以使你的源代码能在不同的操作系统平台上被编译出来。</p>
<p>　　configure.in文件的内容是一些宏，这些宏经过autoconf 处理后会变成检查系统特性、环境变量、软件必须的参数的shell脚本。configure.in文件中的宏的顺序并没有规定，但是你必须在所有宏的最前面和最后面分别加上AC_INIT宏和AC_OUTPUT宏。</p>
<p>　　在configure.ini中：</p>
<p>　　#号表示注释，这个宏后面的内容将被忽略。</p>
<p>　　AC_INIT(FILE) </p>
<p>　　这个宏用来检查源代码所在的路径。</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">AM_INIT_AUTOMAKE(PACKAGE,&nbsp;VERSION)</span></div>
<p>&nbsp;&nbsp;&nbsp;&nbsp; 这个宏是必须的，它描述了我们将要生成的软件包的名字及其版本号：PACKAGE是软件包的名字，VERSION是版本号。当你使用make dist命令时，它会给你生成一个类似helloworld-1.0.tar.gz的软件发行包，其中就有对应的软件包的名字和版本号。</p>
<p>AC_PROG_CC</p>
<p>　　这个宏将检查系统所用的C编译器。 </p>
<p>AC_OUTPUT(FILE)</p>
<p>　　这个宏是我们要输出的Makefile的名字。</p>
<p>　　我们在使用automake时，实际上还需要用到其他的一些宏，但我们可以用aclocal 来帮我们自动产生。执行aclocal后我们会得到aclocal.m4文件。</p>
<p>　　产生了configure.in和aclocal.m4 两个宏文件后，我们就可以使用autoconf来产生configure文件了。</p>
<p>　　5、 Makefile.am</p>
<p>　　Makefile.am是用来生成Makefile.in的，需要你手工书写。Makefile.am中定义了一些内容：</p>
<p>AUTOMAKE_OPTIONS </p>
<p>　　这个是automake的选项。在执行automake时，它会检查目录下是否存在标准GNU软件包中应具备的各种文件，例如AUTHORS、ChangeLog、NEWS等文件。我们将其设置成foreign时，automake会改用一般软件包的标准来检查。</p>
<p>bin_PROGRAMS</p>
<p>　　这个是指定我们所要产生的可执行文件的文件名。如果你要产生多个可执行文件，那么在各个名字间用空格隔开。 </p>
<p>helloworld_SOURCES </p>
<p>　　这个是指定产生&#8220;helloworld&#8221;时所需要的源代码。如果它用到了多个源文件，那么请使用空格符号将它们隔开。比如需要helloworld.h，helloworld.c那么请写成helloworld_SOURCES= helloworld.h helloworld.c。</p>
<p>　　如果你在bin_PROGRAMS定义了多个可执行文件，则对应每个可执行文件都要定义相对的filename_SOURCES。</p>
<p>　　6、 automake</p>
<p>　　我们使用automake --add-missing来产生Makefile.in。</p>
<p>　　选项--add-missing的定义是&#8220;add missing standard files to package&#8221;，它会让automake加入一个标准的软件包所必须的一些文件。</p>
<p>　　我们用automake产生出来的Makefile.in文件是符合GNU Makefile惯例的，接下来我们只要执行configure这个shell 脚本就可以产生合适的 Makefile 文件了。</p>
<p>　　7、 Makefile</p>
<p>　　在符合GNU Makefiel惯例的Makefile中，包含了一些基本的预先定义的操作：</p>
<p>make</p>
<p>　　根据Makefile编译源代码，连接，生成目标文件，可执行文件。</p>
<p>make clean</p>
<p>　　清除上次的make命令所产生的object文件（后缀为&#8220;.o&#8221;的文件）及可执行文件。</p>
<p>make install</p>
<p>　　将编译成功的可执行文件安装到系统目录中，一般为/usr/local/bin目录。</p>
<p>make dist</p>
<p>　　产生发布软件包文件（即distribution package）。这个命令将会将可执行文件及相关文件打包成一个tar.gz压缩的文件用来作为发布软件的软件包。</p>
<p>　　它会在当前目录下生成一个名字类似&#8220;PACKAGE-VERSION.tar.gz&#8221;的文件。PACKAGE和VERSION，是我们在configure.in中定义的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。</p>
<p>make distcheck</p>
<p>　　生成发布软件包并对其进行测试检查，以确定发布包的正确性。这个操作将自动把压缩包文件解开，然后执行configure命令，并且执行make，来确认编译不出现错误，最后提示你软件包已经准备好，可以发布了。</p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><span style="color: #000000">===============================================</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />helloworld</span><span style="color: #000000">-</span><span style="color: #000000">1.0</span><span style="color: #000000">.tar.gz&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;ready&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;distribution<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span><span style="color: #000000">===============================================</span><span style="color: #000000"><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" />make&nbsp;distclean<br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /><br /><img alt="" align="top" src="http://www.cppblog.com/images/OutliningIndicators/None.gif" /></span></div>
<p>　　类似make clean，但同时也将configure生成的文件全部删除掉，包括Makefile。</p>
<p>　　五、结束语</p>
<p>　　通过上面的介绍，你应该可以很容易地生成一个你自己的符合GNU惯例的Makefile文件及对应的项目文件。</p>
<p>　　如果你想写出更复杂的且符合惯例的Makefile，你可以参考一些开放代码的项目中的configure.in和Makefile.am文件，比如：嵌入式数据库sqlite，单元测试cppunit。</p>
<p>&nbsp;</p>
<p><br /></p><img src ="http://www.cppblog.com/wc250en007/aggbug/180478.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-06-27 14:19 <a href="http://www.cppblog.com/wc250en007/archive/2012/06/27/180478.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Linux makefile 教程(转)</title><link>http://www.cppblog.com/wc250en007/archive/2012/06/19/179392.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Tue, 19 Jun 2012 03:49:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/06/19/179392.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/179392.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/06/19/179392.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/179392.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/179392.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;最近在学习Linux下的C编程，买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊，可能是我的理解能不行。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 于是google到了以下这篇文章。通俗易懂。然后把它贴出来，方便学习。&nbsp;&nbsp;&nbsp;&nbsp...&nbsp;&nbsp;<a href='http://www.cppblog.com/wc250en007/archive/2012/06/19/179392.html'>阅读全文</a><img src ="http://www.cppblog.com/wc250en007/aggbug/179392.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-06-19 11:49 <a href="http://www.cppblog.com/wc250en007/archive/2012/06/19/179392.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Makefile实例</title><link>http://www.cppblog.com/wc250en007/archive/2012/06/19/179388.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Tue, 19 Jun 2012 03:39:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/06/19/179388.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/179388.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/06/19/179388.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/179388.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/179388.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Makefile的编写 &nbsp; &nbsp;&nbsp;&nbsp; 假设我们有下面这样的一个程序,源代码如下: &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* &nbsp; main.c &nbsp; */ &nbsp; &nbsp;&nbsp;&nbsp; #include &nbsp; "mytool1.h" &nbsp; &nbsp;&...&nbsp;&nbsp;<a href='http://www.cppblog.com/wc250en007/archive/2012/06/19/179388.html'>阅读全文</a><img src ="http://www.cppblog.com/wc250en007/aggbug/179388.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-06-19 11:39 <a href="http://www.cppblog.com/wc250en007/archive/2012/06/19/179388.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 常用命令全集</title><link>http://www.cppblog.com/wc250en007/archive/2012/06/19/179387.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Tue, 19 Jun 2012 02:56:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/06/19/179387.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/179387.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/06/19/179387.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/179387.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/179387.html</trackback:ping><description><![CDATA[<a href="http://linux.chinaitlab.com/special/linuxcom/">http://linux.chinaitlab.com/special/linuxcom/</a> <br /><br /><br />1.ctrl+z将文件置为后台运行 fg运行到前台<br /><img src ="http://www.cppblog.com/wc250en007/aggbug/179387.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-06-19 10:56 <a href="http://www.cppblog.com/wc250en007/archive/2012/06/19/179387.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu编程环境搭建</title><link>http://www.cppblog.com/wc250en007/archive/2012/04/15/171446.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Sun, 15 Apr 2012 02:12:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/04/15/171446.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/171446.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/04/15/171446.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/171446.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/171446.html</trackback:ping><description><![CDATA[<p style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">第一，按照下面网页的提示来添加新的软件源：</p>
<p style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><a style="line-height: normal" href="http://wiki.ubuntu.org.cn/%E6%B7%BB%E5%8A%A0%E5%85%B6%E4%BB%96%E8%BD%AF%E4%BB%B6%E5%BA%93">http://wiki.ubuntu.org.cn/%E6%B7%BB%E5%8A%A0%E5%85%B6%E4%BB%96%E8%BD%AF%E4%BB%B6%E5%BA%93</a></p>
<p style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">注意添加源的时候，可以使用ping来测试源的速度，尽量选择较快的源。</p>
<p style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">我的操作如下：</p><pre style="line-height: normal; widows: 2; text-transform: none; background-color: rgb(227,227,229); font-variant: normal; font-style: normal; text-indent: 0px; letter-spacing: normal; orphans: 2; color: rgb(9,59,9); font-size: 13px; font-weight: normal; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup&nbsp;&nbsp;&nbsp;&nbsp; //将原文件备份一下
sudo gedit /etc/apt/sources.list&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //编辑添加新的源</pre><pre style="line-height: normal; widows: 2; text-transform: none; background-color: rgb(227,227,229); font-variant: normal; font-style: normal; text-indent: 0px; letter-spacing: normal; orphans: 2; color: rgb(9,59,9); font-size: 13px; font-weight: normal; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">注意选择源要对应相应的版本，我的版本是6.06，所以选择下面一个源：</pre><pre style="line-height: normal; widows: 2; text-transform: none; background-color: rgb(227,227,229); font-variant: normal; font-style: normal; text-indent: 0px; letter-spacing: normal; orphans: 2; color: rgb(9,59,9); font-size: 13px; font-weight: normal; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">deb http://ubuntu.cn99.com/ubuntu/ dapper main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ dapper-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ dapper-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ dapper-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ dapper main restricted universe multiverse
</pre>
<p style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">保持文件并更新</p><pre style="line-height: normal; widows: 2; text-transform: none; background-color: rgb(227,227,229); font-variant: normal; font-style: normal; text-indent: 0px; letter-spacing: normal; orphans: 2; color: rgb(9,59,9); font-size: 13px; font-weight: normal; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">sudo apt-get update
</pre>
<p style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"><font style="line-height: normal" face="Courier New"></font>第二步，安装<font style="line-height: normal" size="2">build-essential</font></p>
<p style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">sudo apt-get install build-essential<br style="line-height: normal" /><font style="line-height: normal" size="2">安装完成后写一个C语言程序testc.c测试一下。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /><br style="line-height: normal" /></font></p>
<p style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">
<table style="line-height: normal; table-layout: auto !important" border="0" cellspacing="1" cellpadding="3" width="90%" align="center">
<tbody style="line-height: normal">
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><span style="line-height: normal" class="genmed"><strong style="line-height: normal">代码:</strong></span></td></tr>
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all" class="code"><br style="line-height: normal" />#include&lt;stdio.h&gt;<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />int main()<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />{<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />&nbsp;&nbsp;&nbsp;&nbsp; printf("Hello Ubuntu!\n");<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />&nbsp;&nbsp;&nbsp;&nbsp; return 0;<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />}<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /></td></tr></tbody></table></p><span style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="postbody">
<p style="line-height: normal"><br style="line-height: normal" /><br style="line-height: normal" /></p></span><span style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 13px/20px 宋体; white-space: normal; orphans: 2; float: none; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"></span>
<p style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">
<table style="line-height: normal; table-layout: auto !important" border="0" cellspacing="1" cellpadding="3" width="90%" align="center">
<tbody style="line-height: normal">
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><span style="line-height: normal" class="genmed"><strong style="line-height: normal">代码:</strong></span></td></tr>
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all" class="code"><br style="line-height: normal" />$ gcc testc.c -o testc<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />$ ./testc<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /></td></tr></tbody></table></p><span style="widows: 2; text-transform: none; background-color: rgb(227,227,229); text-indent: 0px; letter-spacing: normal; font: 13px 宋体; white-space: normal; orphans: 2; color: rgb(9,59,9); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="postbody">
<p style="line-height: normal"><br style="line-height: normal" /><br style="line-height: normal" /><font style="line-height: normal" size="2">显示<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />Hello Ubuntu!<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />这样，C语言编译器就安装成功了；<span class="Apple-converted-space">&nbsp;</span></font><br style="line-height: normal" /><font style="line-height: normal" color="#ff0000" size="4">第三步、安装GTK环境</font><font style="line-height: normal" size="2"><span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /><br style="line-height: normal" />安装GTK环境只要安装一个gnome-core-devel就可以了，里面集成了很多其他的包。除此之外还要转一些其他的东西，如libglib2.0-doc、libgtk2.0-doc帮助文档，devhelp帮助文档查看，glade-gnome、glade-common、glade-doc图形界面设计等。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /></font></p>
<p style="line-height: normal">
<table style="line-height: normal; table-layout: auto !important" border="0" cellspacing="1" cellpadding="3" width="90%" align="center">
<tbody style="line-height: normal">
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><span style="line-height: normal" class="genmed"><strong style="line-height: normal">代码:</strong></span></td></tr>
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all" class="code"><br style="line-height: normal" />sudo apt-get install gnome-core-devel<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />sudo apt-get install libglib2.0-doc libgtk2.0-doc<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />sudo apt-get install devhelp<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />sudo apt-get install glade-gnome glade-common glade-doc<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /></td></tr></tbody></table></p><span style="line-height: normal" class="postbody">
<p style="line-height: normal"><br style="line-height: normal" /><br style="line-height: normal" /><font style="line-height: normal" size="2">安装完成后我们也同样做个测试程序<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /></font></p></span>
<p style="line-height: normal">
<table style="line-height: normal; table-layout: auto !important" border="0" cellspacing="1" cellpadding="3" width="90%" align="center">
<tbody style="line-height: normal">
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><span style="line-height: normal" class="genmed"><strong style="line-height: normal">代码:</strong></span></td></tr>
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all" class="code"><br style="line-height: normal" />#include&lt;gtk/gtk.h&gt;<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />void hello(GtkWidget *widget,gpointer data)<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />{<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />g_print("Hello Ubuntu!\n");<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />}<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />{<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />g_print ("delete event occurred\n");<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />return(TRUE);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />}<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />void destroy(GtkWidget *widget,gpointer data)<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />{<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_main_quit();<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />}<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />int main( int argc, char *argv[] )<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />{<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />GtkWidget *window;<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />GtkWidget *button;<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_init (&amp;argc, &amp;argv);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />window=gtk_window_new (GTK_WINDOW_TOPLEVEL);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_container_set_border_width (GTK_CONTAINER (window), 10);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />button = gtk_button_new_with_label ("Hello Ubuntu!");<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (gtk_widget_destroy),GTK_OBJECT (window));<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_container_add (GTK_CONTAINER (window), button);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_widget_show (button);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_widget_show (window);&nbsp;&nbsp;&nbsp;&nbsp; /*显示一个窗口*/<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />gtk_main();&nbsp;&nbsp;&nbsp;&nbsp; /*进入主循环*/<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />return(0);<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />}<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /></td></tr></tbody></table></p><span style="line-height: normal" class="postbody">
<p style="line-height: normal"><br style="line-height: normal" /><br style="line-height: normal" /><font style="line-height: normal" size="2">用下面命令编译运行<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /></font></p></span>
<p style="line-height: normal">
<table style="line-height: normal; table-layout: auto !important" border="0" cellspacing="1" cellpadding="3" width="90%" align="center">
<tbody style="line-height: normal">
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all"><span style="line-height: normal" class="genmed"><strong style="line-height: normal">代码:</strong></span></td></tr>
<tr style="line-height: normal">
<td style="filter: none; line-height: normal; zoom: 1 !important; font-family: Arial; word-wrap: break-word; visibility: visible !important; font-size: 12px; word-break: break-all" class="code"><br style="line-height: normal" />$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />$ ./gtktest<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /></td></tr></tbody></table></p><span style="line-height: normal" class="postbody">
<p style="line-height: normal"><br style="line-height: normal" /><font style="line-height: normal" size="2">会显示一个带有一个按钮的窗口，点击按钮以后窗口关闭，命令行显示Hello Ubuntu!<span class="Apple-converted-space">&nbsp;</span></font><br style="line-height: normal" /><br style="line-height: normal" />第四步、安装Qt</p>
<p style="line-height: normal"><font style="line-height: normal" size="2">QT我安装了<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />libqt4-core<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />qt4-designer<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />qt4-dev-tools<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />qt4-qtconfig<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />libqt4-dev<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />libqt4-gui libqt4-debug<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />libqt4-sql<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /><br style="line-height: normal" />这个我还没有怎么用过，在新立得里面搜索QT4，看着差不多的都装上了。<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" /><br style="line-height: normal" />5安装一个IDE<span class="Apple-converted-space">&nbsp;</span><br style="line-height: normal" />Linux里面有个一个很适合初学者用的C C＋＋的IDE 叫Geany，在菜单&#8220;应用程序&#8221;-&gt;&#8220;添加删除程序&#8221;，在里面program里找一下就可以了。</font></p></span></span><img src ="http://www.cppblog.com/wc250en007/aggbug/171446.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-04-15 10:12 <a href="http://www.cppblog.com/wc250en007/archive/2012/04/15/171446.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vim 系统剪切板</title><link>http://www.cppblog.com/wc250en007/archive/2012/04/15/171445.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Sun, 15 Apr 2012 02:04:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/04/15/171445.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/171445.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/04/15/171445.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/171445.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/171445.html</trackback:ping><description><![CDATA[<span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">1.Shift+Insert：将系统中的剪贴板上的内容粘贴到vim上</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">2.VIM具有多个剪切板，":reg"命令查看各剪切板。系统剪切板的编号就是"+。</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">3.vi的粘贴指令是"p"，但是如果要粘贴一个特定的剪贴板，只是用p就不行了。先按ESC，退出编辑模式，然后依次按"+p这三个字符。这是把+剪贴板的内容粘贴进来。</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">添加：</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">map &lt;c-c&gt; "+y</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">map &lt;c-v&gt; "+p</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">到vimrc中，可以方便的ctrl c ,ctrl y 了。</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">将系统剪贴板的内容拷贝进VIM的操作是： 在Insert模式下 Shift+Insert, 或Insert模式下 鼠标中键</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">但是反过来就有点困难， 因为终端下的VIM没有系统剪贴板，在寻找命令无果后。 我找到了一个勉强可以的办法。</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(255,255,255); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 12px/18px arial; white-space: normal; orphans: 2; float: none; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">在vim中的命令行输入 set mouse=v ， 然后就可以使用鼠标选择并右键弹出菜单复制，或者Ctrl+Shift+c复制，缺点是一定要用鼠标。</span><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><br style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" />
<div style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; word-wrap: break-word; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">2月14日</div>
<h4 style="line-height: 18px; widows: 2; text-transform: none; font-variant: normal; font-style: normal; text-indent: 0px; letter-spacing: normal; font-family: arial; white-space: normal; orphans: 2; color: rgb(154,154,154); font-size: 12px; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="beTitle">vim 复制粘贴到剪贴板</h4>
<div style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; font: 12px/18px arial; word-wrap: break-word; white-space: normal; orphans: 2; color: rgb(154,154,154); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="bvMsg">粘贴： shirt + Insert<br />复制 : ~/.vimrc 增加一行 map ^C ctrl + c<br />其中^C 这样输入： 先按ctrl+v, 再按ctrl+c</div><img src ="http://www.cppblog.com/wc250en007/aggbug/171445.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-04-15 10:04 <a href="http://www.cppblog.com/wc250en007/archive/2012/04/15/171445.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在Ubuntu下建立C/C++编程环境(C和C++的编译是不一样的)</title><link>http://www.cppblog.com/wc250en007/archive/2012/04/15/171438.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Sun, 15 Apr 2012 00:04:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/04/15/171438.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/171438.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/04/15/171438.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/171438.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/171438.html</trackback:ping><description><![CDATA[<p style="widows: 2; text-transform: none; background-color: rgb(239,239,239); text-indent: 0px; letter-spacing: normal; font: 14px/19px 宋体, Arial; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">刚刚装好的<a style="color: blue; text-decoration: underline" title="Ubuntu" href="http://www.linuxidc.com/topicnews.aspx?tid=2">Ubuntu</a>，是自带Gcc的，但是由于缺乏必要的头文件，不能顺利编译C和C++源程序<br />比如有以下源程序：<br />#include &lt;stdio.h&gt;<br />int main()<br />{<br />printf("HelloWorld\n");<br />return 0;<br />}<br />在终端编译时会提示找不到文件&#8220;stdio.h&#8221;，C++源文件也是如此</p>
<p style="widows: 2; text-transform: none; background-color: rgb(239,239,239); text-indent: 0px; letter-spacing: normal; font: 14px/19px 宋体, Arial; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">要解决问题，需要一个build-essential</p>
<table style="position: relative; widows: 2; text-transform: none; background-color: rgb(239,239,239); text-indent: 0px; letter-spacing: normal; font: 14px/19px 宋体, Arial; white-space: normal; orphans: 2; table-layout: fixed; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" border="0" width="97%" align="center">
<tbody>
<tr>
<td style="font-size: 12px" colspan="3">
<div style="font-size: 12px" align="center"></div></td></tr></tbody></table><br style="widows: 2; text-transform: none; background-color: rgb(239,239,239); text-indent: 0px; letter-spacing: normal; font: 14px/19px 宋体, Arial; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" /><span style="widows: 2; text-transform: none; background-color: rgb(239,239,239); text-indent: 0px; letter-spacing: normal; display: inline !important; font: 14px/19px 宋体, Arial; white-space: normal; orphans: 2; float: none; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">在新立得软件包管理器中搜索build-essential，安装就可以了</span> 
<p style="widows: 2; text-transform: none; background-color: rgb(239,239,239); text-indent: 0px; letter-spacing: normal; font: 14px/19px 宋体, Arial; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px"></p>
<p style="widows: 2; text-transform: none; background-color: rgb(239,239,239); text-indent: 0px; letter-spacing: normal; font: 14px/19px 宋体, Arial; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">C和C++的源文件都可以命名为*.c，不过在编译的时候要正确选择命令<br />如上面写的程序命名为my.c，放在桌面上<br />在终端中输入：<br />gcc /Desktop/my.c -o res<br />./res<br />编译生成可执行文件res并执行</p>
<p style="widows: 2; text-transform: none; background-color: rgb(239,239,239); text-indent: 0px; letter-spacing: normal; font: 14px/19px 宋体, Arial; white-space: normal; orphans: 2; color: rgb(51,51,51); word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px">假如源程序是按照C++的语法标准编写的，<a style="color: blue; text-decoration: underline" href="http://ubuntuone.cn/">http://ubuntuone.cn</a>则应该执行：<br />g++ [目录名] -o [可执行文件名]<br />./[可执行文件名]<br />你可以自己调试一下下面的源程序：<br />#include &lt;iostream&gt;<br />using namespace std;<br />class example<br />{<br />public:<br />example(int i)<br />{<br />num=i;<br />}<br />void display()<br />{<br />cout&lt;&lt;"HelloWorld!I'm number "&lt;&lt;num&lt;&lt;endl;<br />}<br />private:<br />int num;<br />};<br />int main()<br />{<br />example A(1),B(2);<br />A.display();<br />B.display();<br />return 0;<br />}</p><img src ="http://www.cppblog.com/wc250en007/aggbug/171438.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-04-15 08:04 <a href="http://www.cppblog.com/wc250en007/archive/2012/04/15/171438.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Ubuntu初体验</title><link>http://www.cppblog.com/wc250en007/archive/2012/03/14/167925.html</link><dc:creator>Let me see see</dc:creator><author>Let me see see</author><pubDate>Wed, 14 Mar 2012 14:27:00 GMT</pubDate><guid>http://www.cppblog.com/wc250en007/archive/2012/03/14/167925.html</guid><wfw:comment>http://www.cppblog.com/wc250en007/comments/167925.html</wfw:comment><comments>http://www.cppblog.com/wc250en007/archive/2012/03/14/167925.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wc250en007/comments/commentRss/167925.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wc250en007/services/trackbacks/167925.html</trackback:ping><description><![CDATA[1.全屏-》窗口 右边CTRL+F<br />2.调节VirtualBox中Ubuntu虚拟机的分辨率<br /><span style="widows: 2; text-transform: none; text-indent: 0px; letter-spacing: normal; border-collapse: separate; font: medium 'Times New Roman'; white-space: normal; orphans: 2; color: rgb(0,0,0); word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px" class="Apple-style-span"><span style="line-height: 20px; font-family: Arial, Tahoma, Verdana; color: rgb(85,85,85); font-size: 14px" class="Apple-style-span">不过进Ubuntu桌面后，屏幕分辨率只能在800&#215;600和640&#215;480之间切换，刷新频率也是很奇怪的61HZ。Google了下发现是需要和VMWareTool一样需要安装一个虚拟机的辅助工具。先在&#8220;设备&#8221;-&gt;&#8220;分配光驱&#8221;选中VBoxGuestAdditions.iso，然后运行其中的安装程序或者脚本<br /></span></span><br />VirtualBox:~$ sudo sh /media/VBOXADDITIONS_3.2.10_66523/VBoxLinuxAdditions-x86.run<img src ="http://www.cppblog.com/wc250en007/aggbug/167925.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wc250en007/" target="_blank">Let me see see</a> 2012-03-14 22:27 <a href="http://www.cppblog.com/wc250en007/archive/2012/03/14/167925.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>