<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_计算机三维图形技术及应用(3D-CG)</title><subtitle type="text">专注于计算机三维图形技术，致力于为客户提供最理想的产品和服务.</subtitle><id>http://feed.cnblogs.com/blog/u/10449/rss</id><updated>2012-03-27T04:49:08Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/10449/rss"/><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2012/03/12/2392001.html</id><title type="text">Linux和Windows共享文件（转载）</title><summary type="text">Samba服务是Unix中的一个服务。 它的作用是Unix机器和windows机器的文件共享。 可以用windows的网上邻居来访问Unix机器上的文件 linux samba user共享方式配置 1、修改/etc/samba/smb.conf文件 security=user encrypt passwords=yes smb passwd file=/etc/samba/smbpasswd 2、生成口令文件 adduser sb123 (添加linux用户) passwd sb123 (设置sb123的linux密码,可以和smbpasswd不一样) cat /etc/passwd | .</summary><published>2012-03-12T08:27:00Z</published><updated>2012-03-12T08:27:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2012/03/12/2392001.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2012/03/12/2392001.html"/><content type="html"> &lt;p&gt;Samba服务是Unix中的一个服务。 &lt;/p&gt;&lt;p&gt;它的作用是Unix机器和windows机器的文件共享。 &lt;/p&gt;&lt;p&gt;可以用windows的网上邻居来访问Unix机器上的文件 &lt;/p&gt;&lt;p&gt;linux samba user共享方式配置 &lt;/p&gt;&lt;p&gt;&lt;p&gt;1、修改/etc/samba/smb.conf文件 &lt;/p&gt;&lt;p&gt;security=user &lt;/p&gt;&lt;p&gt;encrypt passwords=yes &lt;/p&gt;&lt;p&gt;smb passwd file=/etc/samba/smbpasswd &lt;/p&gt;&lt;p&gt;&lt;p&gt;2、生成口令文件 &lt;/p&gt;&lt;p&gt;adduser sb123 (添加linux用户) &lt;/p&gt;&lt;p&gt;passwd sb123 (设置sb123的linux密码,可以和smbpasswd不一样) &lt;/p&gt;&lt;p&gt;cat /etc/passwd | mksmbpasswd.sh &amp;gt; /etc/samba/smbpasswd &lt;/p&gt;&lt;p&gt;&lt;p&gt;3、利用smbpasswd命令为刚才建立的帐号设置samba server口令 &lt;/p&gt;&lt;p&gt;smbpasswd sb123(设置sb123的smb密码,可以和linux不一样) &lt;/p&gt;&lt;p&gt;&lt;p&gt;4、重起samba server &lt;/p&gt;&lt;p&gt;service smb restart &lt;/p&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2392001.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2012/03/12/2392001.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2012/02/29/2373336.html</id><title type="text">查看编译器内置的宏定义</title><summary type="text">gcc -dM -E - &lt; /dev/null</summary><published>2012-02-29T06:01:00Z</published><updated>2012-02-29T06:01:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2012/02/29/2373336.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2012/02/29/2373336.html"/><content type="html"> &lt;div class="post-header"&gt;&lt;div class="post-header-line-1"&gt;&lt;span class="goog_qs-tidbit goog_qs-tidbit-0"&gt;gcc -dM -E - &amp;lt; /dev/null&lt;/span&gt; &lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2373336.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2012/02/29/2373336.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2012/01/17/2324258.html</id><title type="text">C#，int转成string，string转成int(转载)</title><summary type="text">http://www.cnblogs.com/xshy3412/archive/2007/08/29/874362.html1，int转成string用toString 或者Convert.toString()如下 例如：int varInt = 1; string varString = Convert.ToString(varInt); string varString2 = varInt.ToString();2，string转成int如果确定字符串中是可以转成数字的字符，可以用int.Parse(string s)，该语句返回的是转换得到的int值;如果不能确定字符串是否可以转成数字，</summary><published>2012-01-17T00:40:00Z</published><updated>2012-01-17T00:40:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2012/01/17/2324258.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2012/01/17/2324258.html"/><content type="html">&lt;p&gt;&lt;a href="http://www.cnblogs.com/xshy3412/archive/2007/08/29/874362.html"&gt;http://www.cnblogs.com/xshy3412/archive/2007/08/29/874362.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1，int转成string&lt;br /&gt;用toString &lt;br /&gt;或者Convert.toString()如下 &lt;br /&gt;&lt;br /&gt;例如：&lt;br /&gt;int varInt = 1; &lt;br /&gt;string varString = Convert.ToString(varInt); &lt;br /&gt;string varString2 = varInt.ToString();&lt;br /&gt;&lt;br /&gt;2，string转成int&lt;br /&gt;如果确定字符串中是可以转成数字的字符，可以用int.Parse(string s)，该语句返回的是转换得到的int值;&lt;br /&gt;如果不能确定字符串是否可以转成数字，可以用int.TryParse(string s, out int result),该语句返回的是bool值，指示转换操作是否成功，参数result是存放转换结果的变量。&lt;br /&gt;&lt;br /&gt;例如：&lt;br /&gt;string str = string.Empty;&lt;br /&gt;str = "123";&lt;br /&gt;int result=int.Parse(str);&lt;br /&gt;&lt;br /&gt;string str = string.Empty;&lt;br /&gt;str = "xyz";&lt;br /&gt;int result;&lt;br /&gt;int.TryParse(str, out result);&lt;/p&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2324258.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2012/01/17/2324258.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2011/12/12/2284887.html</id><title type="text">linux下的IP地址释放</title><summary type="text">dhclient eth0类似于windows下的ipconfig /renew 或/release的功能</summary><published>2011-12-12T07:26:00Z</published><updated>2011-12-12T07:26:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2011/12/12/2284887.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2011/12/12/2284887.html"/><content type="html">&lt;div&gt;dhclient eth0&lt;br /&gt;&lt;br /&gt;类似于windows下的ipconfig /renew 或/release的功能&lt;/div&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2284887.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2011/12/12/2284887.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2011/12/07/2279291.html</id><title type="text">ubuntu 安装nvidia显卡驱动(转载)</title><summary type="text">下载官方最新驱动 http://www.nvidia.cn/ root下执行：/etc/init.d/gdm stop 桌面消失 Alt+F2进入虚拟终端 进入下载的驱动所在的文件夹，安装驱动 sh NVIDIA-Linux-x86_64-195.36.24-pkg2.run /etc/init.d/gdm start 进入桌面。 至此驱动安装完毕。</summary><published>2011-12-07T06:44:00Z</published><updated>2011-12-07T06:44:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2011/12/07/2279291.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2011/12/07/2279291.html"/><content type="html">&lt;p&gt;下载官方最新驱动 &lt;a href="http://www.nvidia.cn/Download/index.aspx?lang=cn"&gt;http://www.nvidia.cn/&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;   &lt;p&gt;root下执行：&lt;br /&gt;/etc/init.d/gdm stop&lt;br /&gt; 桌面消失&lt;br /&gt; Alt+F2进入虚拟终端&lt;br /&gt; 进入下载的驱动所在的文件夹，安装驱动&lt;br /&gt; sh NVIDIA-Linux-x86_64-195.36.24-pkg2.run&lt;br /&gt;&lt;/p&gt;&lt;p&gt; /etc/init.d/gdm start&lt;br /&gt; 进入桌面。&lt;/p&gt; &lt;p&gt;至此驱动安装完毕。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2279291.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2011/12/07/2279291.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2011/07/27/2118533.html</id><title type="text">ubuntu开启sshd服务（转载）</title><summary type="text">SSH分客户端openssh-client和openssh-server 如果你只是想登陆别的机器的SSH只需要安装openssh-client（ubuntu有默认安装，如果没有则sudo apt-get install openssh-client），如果要使本机开放SSH服务就需要安装openssh-server sudo apt-get install openssh-server 然后确认sshserver是否启动了： ps -e |grep ssh 如果看到sshd那说明ssh-server已经启动了。 如果没有则可以这样启动：sudo /etc/init.d/ssh start s</summary><published>2011-07-27T08:14:00Z</published><updated>2011-07-27T08:14:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/27/2118533.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/27/2118533.html"/><content type="html">&lt;div&gt;SSH分客户端openssh-client和openssh-server&lt;br /&gt; 如果你只是想登陆别的机器的SSH只需要安装openssh-client（ubuntu有默认安装，如果没有则sudo apt-get install openssh-client），如果要使本机开放SSH服务就需要安装openssh-server&lt;br /&gt; sudo apt-get install openssh-server&lt;br /&gt; 然后确认sshserver是否启动了：&lt;br /&gt; ps -e |grep ssh&lt;br /&gt; 如果看到sshd那说明ssh-server已经启动了。&lt;br /&gt; 如果没有则可以这样启动：sudo /etc/init.d/ssh start&lt;br /&gt; ssh-server配置文件位于/ etc/ssh/sshd_config，在这里可以定义SSH的服务端口，默认端口是22，你可以自己定义成其他端口号，如222。&lt;br /&gt; 然后重启SSH服务：&lt;br /&gt; sudo /etc/init.d/ssh stop&lt;br /&gt; sudo /etc/init.d/ssh start&lt;br /&gt; 然后使用以下方式登陆SSH：&lt;br /&gt; ssh tuns@192.168.0.100  tuns为192.168.0.100机器上的用户，需要输入密码。&lt;br /&gt; 断开连接：exit&lt;/div&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2118533.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/27/2118533.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2011/07/13/2104982.html</id><title type="text">eclipse cdt代码悬停窗口背景颜色设置(转载)</title><summary type="text">http://now-code.com/archives/202在eclipse中编写C++代码时，有一个很方便的功能，是当鼠标停放在某一个函数或变量上不同时，会出现一个悬停框，显示该函数或变量的声明 体。但是，从Ubuntu 10.04之后，这个悬停框便出现了一些小问题：所有弹出的悬停框背景都是黑色的，这样有一些黑色的代码就不能显示了，很不方便。 之所以这样是因为这个悬停框的背景是由gnome桌面的主题决定的，而解决的办法就是让eclipse的悬停框不使用系统主题背景。设置如下： 打开eclipse，依次选择： Windows -&gt; Preferences -&gt; C/C++ -&amp;</summary><published>2011-07-13T02:25:00Z</published><updated>2011-07-13T02:25:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/13/2104982.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/13/2104982.html"/><content type="html">&lt;div&gt;&lt;p&gt;&lt;div&gt;http://now-code.com/archives/202&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;在eclipse中编写C++代码时，有一个很方便的功能，是当鼠标停放在某一个函数或变量上不同时，会出现一个悬停框，显示该函数或变量的声明 体。但是，&lt;/p&gt;&lt;p&gt;从Ubuntu  10.04之后，这个悬停框便出现了一些小问题：所有弹出的悬停框背景都是黑色的，这样有一些黑色的代码就不能显示了，很不方便。&lt;br /&gt;&lt;/p&gt;&lt;p&gt; 之所以这样是因为这个悬停框的背景是由gnome桌面的主题决定的，而解决的办法就是让eclipse的悬停框不使用系统主题背景。设置如下：&lt;br /&gt; 打开eclipse，依次选择：&lt;/p&gt;  &lt;div&gt;&lt;div class="code_title\&amp;gt;TXT CODE&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;pre style=" font-family:=""  monospace;=""&gt;Windows -&amp;gt; Preferences -&amp;gt; C/C++ -&amp;gt; Editor&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;在右边的编辑区选择&lt;strong&gt;&lt;em&gt;&amp;#8220;Apperance color options&amp;#8221;&lt;/em&gt;&lt;/strong&gt;中的&lt;strong&gt;&lt;em&gt;&amp;#8220;Source hover background&amp;#8221;&lt;/em&gt;&lt;/strong&gt;，把右边的&lt;strong&gt;&lt;em&gt;&amp;#8220;System default&amp;#8221;&lt;/em&gt;&lt;/strong&gt;前的标记去掉，选择自己喜欢的一个颜色即可。 &lt;/p&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2104982.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/13/2104982.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2011/07/07/2100095.html</id><title type="text">Android.mk的用法和基础(转载)</title><summary type="text">http://blog.csdn.net/zhandoushi1982/article/details/5316669 一个Android.mk file用来向编译系统描述你的源代码。具体来说：该文件是GNU Makefile的一小部分，会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块，你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。例如，你不需要在你的Android.mk中 列出头文件和依赖文件。NDK编译系统将会为你自动处理这些问题。这也意味着，在升级NDK后，你应该得到新的toolchain/platform支 持，而.</summary><published>2011-07-07T07:04:00Z</published><updated>2011-07-07T07:04:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/07/2100095.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/07/2100095.html"/><content type="html">&lt;div&gt;     &lt;p&gt;&lt;div&gt;http://blog.csdn.net/zhandoushi1982/article/details/5316669&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 一个Android.mk file用来向编译系统描述你的源代码。具体来说：该文件是GNU  Makefile的一小部分，会被编译系统解析一次或多次。你可以在每一个Android.mk  file中定义一个或多个模块，你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。例如，你不需要在你的Android.mk中 列出头文件和依赖文件。NDK编译系统将会为你自动处理这些问题。这也意味着，在升级NDK后，你应该得到新的toolchain/platform支 持，而且不需要改变你的Android.mk文件。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 先看一个简单的例子：一个简单的"hello world"，比如下面的文件：&lt;br /&gt;sources/helloworld/helloworld.c &lt;br /&gt;sources/helloworld/Android.mk&lt;br /&gt;相应的Android.mk文件会象下面这样：&lt;br /&gt;---------- cut here ------------------&lt;br /&gt;LOCAL_PATH := $(call my-dir)&lt;br /&gt;include $(CLEAR_VARS)&lt;br /&gt;LOCAL_MODULE&lt;br /&gt;:= helloworld&lt;br /&gt;LOCAL_SRC_FILES := helloworld.c&lt;br /&gt;include $(BUILD_SHARED_LIBRARY)&lt;br /&gt;---------- cut here ------------------&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 我们来解释一下这几行代码：&lt;br /&gt;LOCAL_PATH := $(call my-dir) &lt;br /&gt;一个Android.mk file首先必须定义好LOCAL_PATH变量。它用于在开发树中查找源文件。在这个例子中，宏函数&amp;#8217;my-dir&amp;#8217;, 由编译系统提供，用于返回当前路径（即包含Android.mk file文件的目录）。&lt;br /&gt;include $( CLEAR_VARS)&lt;br /&gt;CLEAR_VARS 由编译系统提供，指定让GNU MAKEFILE为你清除许多LOCAL_XXX变量（例如 LOCAL_MODULE,  LOCAL_SRC_FILES, LOCAL_STATIC_LIBRARIES, 等等...),除LOCAL_PATH  。这是必要的，因为所有的编译控制文件都在同一个GNU MAKE执行环境中，所有的变量都是全局的。&lt;br /&gt;LOCAL_MODULE := helloworld&lt;br /&gt;LOCAL_MODULE变量必须定义，以标识你在Android.mk文件中描述的每个模块。名称必须是唯一的，而且不包含任何空格。注意编译系统会自动产生合适的前缀和后缀，换句话说，一个被命名为'foo'的共享库模块，将会生成'libfoo.so'文件。&lt;br /&gt;LOCAL_SRC_FILES := helloworld.c &lt;br /&gt;LOCAL_SRC_FILES变量必须包含将要编译打包进模块中的C或C++源代码文件。注意，你不用在这里列出头文件和包含文件，因为编译系统将会自动为你找出依赖型的文件；仅仅列出直接传递给编译器的源代码文件就好。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在Android中增加本地程序或者库，这些程序和库与其所载路径没有任何关系，只和它们的Android.mk文件有关系。Android.mk和普通的Makefile有所不同，它具有统一的写法，主要包含一些系统公共的宏。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 在一个Android.mk中可以生成多个可执行程序、动态库和静态库。&lt;br /&gt;1，编译应用程序的模板：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Test Exe&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL_PATH := $(call my-dir)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #include $(CLEAR_VARS)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL_SRC_FILES:= main.c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL_MODULE:= test_exe&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #LOCAL_C_INCLUDES :=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #LOCAL_STATIC_LIBRARIES :=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #LOCAL_SHARED_LIBRARIES :=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include $(BUILD_EXECUTABLE)&lt;br /&gt;（菜 鸟级别解释：:=是赋值的意思，$是引用某变量的值）LOCAL_SRC_FILES中加入源文件路径，LOCAL_C_INCLUDES  中加入所需要包含的头文件路径，LOCAL_STATIC_LIBRARIES加入所需要链接的静态库（*.a）的名 称，LOCAL_SHARED_LIBRARIES中加入所需要链接的动态库（*.so）的名称，LOCAL_MODULE表示模块最终的名 称，BUILD_EXECUTABLE表示以一个可执行程序的方式进行编译。&lt;br /&gt;2，编译静态库的模板：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Test Static Lib&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL_PATH := $(call my-dir)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include $(CLEAR_VARS)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL_SRC_FILES:= /&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; helloworld.c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL_MODULE:= libtest_static&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #LOCAL_C_INCLUDES :=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #LOCAL_STATIC_LIBRARIES :=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #LOCAL_SHARED_LIBRARIES :=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include $(BUILD_STATIC_LIBRARY)&lt;br /&gt;一般的和上面相似，BUILD_STATIC_LIBRARY表示编译一个静态库。&lt;br /&gt;3，编译动态库的模板：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Test Shared Lib&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL_PATH := $(call my-dir)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include $(CLEAR_VARS)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL_SRC_FILES:= /&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; helloworld.c&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOCAL_MODULE:= libtest_shared&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TARGET_PRELINK_MODULES := false&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #LOCAL_C_INCLUDES :=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #LOCAL_STATIC_LIBRARIES :=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #LOCAL_SHARED_LIBRARIES :=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; include $(BUILD_SHARED_LIBRARY)&lt;br /&gt;一般的和上面相似，BUILD_SHARED_LIBRARY表示编译一个静态库。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 以上三者的生成结果分别在如下，generic依具体target会变：&lt;br /&gt;out/target/product/generic/obj/EXECUTABLE&lt;br /&gt;out/target/product/generic/obj/STATIC_LIBRARY&lt;br /&gt;out/target/product/generic/obj/SHARED_LIBRARY&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 每个模块的目标文件夹分别为：&lt;br /&gt;可执行程序：XXX_intermediates&lt;br /&gt;静态库：&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XXX_static_intermediates&lt;br /&gt;动态库：&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; XXX_shared_intermediates&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 另外，在Android.mk文件中，还可以指定最后的目标安装路径，用LOCAL_MODULE_PATH和LOCAL_UNSTRIPPED_PATH来指定。不同的文件系统路径用以下的宏进行选择：&lt;br /&gt;TARGET_ROOT_OUT：表示根文件系统。&lt;br /&gt;TARGET_OUT：表示system文件系统。&lt;br /&gt;TARGET_OUT_DATA：表示data文件系统。&lt;br /&gt;用法如：&lt;br /&gt;&amp;nbsp;CAL_MODULE_PATH:=$(TARGET_ROOT_OUT)&lt;/p&gt; &lt;/div&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2100095.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/07/2100095.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2011/07/06/2099099.html</id><title type="text">安装.run文件包</title><summary type="text">Follow the procedure below to install software packaged in a .run file: Find the .run file in the File Browser Right-click the file and select Properties Under the Permissions tab, make sure that Allow executing file as program is ticked and press Close Double-click the .run file to open it. A dialo</summary><published>2011-07-06T05:07:00Z</published><updated>2011-07-06T05:07:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/06/2099099.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/06/2099099.html"/><content type="html">&lt;div&gt;&lt;p&gt;Follow the procedure below to install software packaged in a .run file: &lt;/p&gt;&lt;ol type="1"&gt;&lt;li&gt;&lt;p&gt;Find the .run file in the &lt;em&gt;File Browser&lt;/em&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Right-click the file and select &lt;em&gt;Properties&lt;/em&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Under the &lt;em&gt;Permissions&lt;/em&gt; tab, make sure that &lt;em&gt;Allow executing file as program&lt;/em&gt; is ticked and press &lt;strong&gt;Close&lt;/strong&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;Double-click the .run file to open it. A dialog box should appear &lt;/li&gt;&lt;li&gt;&lt;p&gt;Press &lt;strong&gt;Run in Terminal&lt;/strong&gt; to run the installer &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;A &lt;em&gt;Terminal&lt;/em&gt; window will open. Follow any instructions on-screen to install the program &lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;Note:&lt;/strong&gt;  Once you have started the installer, it may take a while to display an  installation screen. This is normally due to the installer &lt;em&gt;extracting&lt;/em&gt; all of the files from the .run file ready for use. &lt;/div&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2099099.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/06/2099099.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/CGDeveloper/archive/2011/07/05/2098022.html</id><title type="text">Ubuntu 恢复默认面板</title><summary type="text">进入个人目录rm -rf .gconfrm -rf .gconfd注销系统后，重新进入，恢复了……不过之前的桌面数据会丢失</summary><published>2011-07-05T02:27:00Z</published><updated>2011-07-05T02:27:00Z</updated><author><name>CGDeveloper</name><uri>http://www.cnblogs.com/CGDeveloper/</uri></author><link rel="alternate" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/05/2098022.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/05/2098022.html"/><content type="html">&lt;div&gt;进入个人目录&lt;br /&gt;rm -rf&amp;nbsp; .gconf&lt;br /&gt;rm -rf .gconfd&lt;br /&gt;注销系统后，重新进入，恢复了&amp;#8230;&amp;#8230;不过之前的桌面数据会丢失&lt;/div&gt;&lt;img src="http://www.cnblogs.com/CGDeveloper/aggbug/2098022.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/CGDeveloper/archive/2011/07/05/2098022.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
