静态链接库

静态链接库 几个例子,使用和建立静态库的时候的几种常见情景。 首先建几个文件 a.h void testA(); a.c #include “a.h” void testA() { printf(“A”); } b.h void testB(); b.c #include “b.h” #include “a.h” void testB(){ testA(); printf(“B”); } 得到目标文件 $gcc -c a.c $gcc -c b.c 得到静态库文件 $ ar -r libba.a a.o b.o $ ar -r liba.a a.o $ ar -r libb.a b.o 得到了库libba.a libb.a liba.a 这是最终需要完成的程序。 […]

[Ruby]debian上更新gem

用Rails的时候需要配环境,配环境的大头是安装gem,安装gem的时候就会遇到各种令人崩溃的问题…Orz… 环境是Debian,需要安装refinerycms,出现了gem版本过低的错误。 比较通用的做法是 $gem update –system 但是可能会遇到这个错误 ERROR: While executing gem … (RuntimeError) gem update –system is disabled on Debian. RubyGems can be updated using the official Debian repositories by aptitude or apt-get. 这种情况下就需要自己动手。 这里需要安装的是gem 1.3.6的版本。 先得到rubygems-update-1.3.6.gem,可以直接下载得到 $wget http://gems.rubyforge.org/gems/rubygems-update-1.3.6.gem 然后安装这个叫作rubygems-update的gem $sudo gem install rubygems-update-1.3.6.gem 也可以 $sudo gem install rubygems-update -v=1.3.6 然后执行update_rubygems这个脚本 这个文件的位置由之前gem的设定而定。 $which update_rubygems /home/XXX/.gem/bin/update_rubygems […]

[技巧]ERROR NoMethodError 和 Failed to build gem native extension

用Rails遇到的两个错误和解决办法,目前还是不尽其所以然,先记下。 1.用Webrick起Server的时候,刷新页面的时候遇到如下错误 ERROR NoMethodError: private method `gsub!’ called 参考http://www.ruby-forum.com/topic/206225 换mongrel做Web Server $./scripte/server mongrel 即可 需要安装mongrel $gem install mongrel 2.安装gem的时候遇到如下错误 ERROR: Failed to build gem native extension. 参考http://stackoverflow.com/questions/43778/sqlite3-ruby-gem-failed-to-build-gem-native-extension 环境是Ubuntu,需要安装ruby对应的dev包 $sudo apt-get install ruby1.8-dev

linux下的VNCServer

Linux下的VNCServer很多,启用也很简单。 $vncserver 之后按照提示一步步执行。 这种方法会新建一个session,从其它机器连的server的时候需要指定display的值。 也可使用这个方法: $x0vncserver 可以让vncserver不启用新的session,使得server和client共享同一个桌面。 用的时候一般需要指定password文件。如果使用过前面的vncserver,在~/.vnc/下面会有一个password文件。 $x0vncserver PasswordFile=~/.vnc/passwd & 就行了。 不过这种大写参数的用法看起来倒是很奇怪

Vim Encoding

每次新装VIM都得设置编码相关的选项,记在这里备忘吧。 encoding: VIM内部编码,也就是内容在VIM内部的表现形式。 fileencoding: 文件读写编码,在打开文件时VIM认为此文件是采用fileencoding所指的编码,于是会进行编码转换,转换为encoding所指编码。 fileencodings: 一个编码序列,VIM依次尝试其中的编码,看看是否能成功转换为encoding所指编码。 termencoding:terminal采用的编码,vim如果要输出到terminal,会将文件转码为termencoding所指编码。 在Linux下,八子一般采用 let &termencoding=&encoding set fileencodings=utf-8,gbk,ucs-bom,cp936 感谢: http://edyfox.codecarver.org/html/vim_fileencodings_detection.html