-
在windows上发布Qt4程序
2010-03-04 | Tag:Qt Windows
使用Qt Creator作为IDE编写好Qt应用并构建运行成功,如何在没有安装Qt的机器上运行呢?网络上已经有很多文章介绍,有两种方法:1. 静态编译,可生成单一的可执行文件,文件较小;2. 动态编译,需要复制dll文件,dll文件比较大(10MB以上)。
据说静态编译需要这个过程需要1-2个小时,编译成功后QT目录会变成1.8G左右,我没有尝试,因此采用复制dll的方法。
需要的工具Dependency Walker(主页:http://dependencywalker.com/),可以用来查看可执行文件依赖的dll动态链接库。用Dependency Walker打开编译好的hello.exe(Release版)文件后如图所示:

依次查看各个DLL的位置,拷贝到可执行文件的目录。之后即可在没有安装Qt的Windows机器上运行。
在最简单的情况下,依赖的DLL都在类似D:/qt/2010.01/qt/bin目录中,分别是 mingwm10.dll,QtCore4.dll,QtGui4.dll 和 libgcc_s_dw2-1.dll。
注意:如果使用Debug版的可执行文件,会出现“没有找到QtCored4.dll”的错误。是由于Debug版依赖的是QtCored4.dll,QtGuid4.dll 和 libgcc_s_dw2-1.dll的缘故。QtCored4.dll约28.89MB,而QtGuid4.dll约140.5MB。
另外,转网络上的一段:
程序中默认只支持png图片,如果使用了gif,jpg等格式的文件是显示不出来的。需要将Qt安装目录下的qt/plugins/目录中的imageformats文件夹拷贝到exe文件目录下(注意是整个文件夹)。而 imageformats 文件夹中只需要保留你需要的文件,例如你只需要支持gif文件,就只保留qgif4.dll即可。
-
安装redis和客户端redis-rb
2010-02-18 | Tag:Redis ruby
Redis是什么?
这里是redis的主页:http://code.google.com/p/redis/。它是一个key-value数据库(也就是NoSQL数据库)。有什么用途等,主页上介绍很详细。下面记录一下我的安装过程。
以下主要参考Mark Mzyk的文章《Redis and Ruby》和文后的回复。我主要是翻译了一部分。
有两种方法:
一、手动下载构建gem包安装。
使用强大的rake命令, 可以很轻易地安装redis(无需独立下载编译redis)及依赖包。
1. 下载redis-rb客户端。 redis-rb位于github上, 地址为http://github.com/ezmobius/redis-rb。 可以使用
git clone git://github.com/ezmobius/redis-rb.git
来下载(在ubuntu上可以使用sudo aptitude install git-core 来安装git。当然也可以不使用git直接在浏览器中下载redis-rb)。
2. 如果没有安装rspec gem,那么安装之:
sudo gem install rspec
3. 使用rake命令来安装redis
rake redis:install
这会下载Redis并安装到/usr/bin, Redis的配置文件会在/etc/redis.conf。 之后可以使用
redis-server 来启动。
4. 安装dtach。 Redis依赖 dtach, 如果系统没安装,使用rake命令下载并安装至/usr/bin:
rake dtach:install
5. 生成redis-rb gem。 这将会将redis-rb gem 打包并且放在pkg文件夹中:
rake gem
6. 进入pkg目录,安装redis-rb(注意redis-rb在github上叫redis-rb,但是创建的gem叫redis):
sudo gem install redis二、 用gem命令直接从github安装(未验证)。
gem sources -a http://gems.github.com
gem install ezmobius-redis-rb -
终于在Apache上部署上了Rails项目
2010-02-11 | Tag:Rails Apache Mongrel
按照robbin的《在Windows平台使用Apache2.2和Mongrel运行Ruby on Rails》这篇文章所言,前几天终于在Apache上部署好了一个Rais项目。由于对Apache不熟悉,遇到了三个比较小白的问题,记录在此。
1.用mongrel_rails把mongrel作为服务安装之后,还得启动才行。默认的mongrel_rails没有启动服务的插件,但可以在“服务”里用鼠标操作。(第一天配置好之后,无论如何都是“该页无法显示”,第二天早上起床突然反应过来没有启动服务……)
2.除了按照robbin的文章修改httpd.conf外,还得对静态文件目录设置权限。比如
<Directory "F:\Rails\app\public">
Order Deny,Allow
Allow from all
</Directory>否则,css、js、图片等静态文件无法加载,在log/error.log里会记录:
client denied by server configuration
3.在一个视图文件里,有一句
link_to (h post.title, post)
如果用启动一个进程运行服务器的话,在控制台会出现警告:
warning: don't put space before argument parentheses
也就是,如果使用括号的话,那么不应该在括号前有空格。如果在Apache上运行,会出现404页面。因此改为
link_to h(post.title), post
由于是使用production方式运行,还得重启(mongrel)服务器。
-
今天回来
2009-06-02 | Tag:
据说govern-ment“今日下午颁布全球优秀网络公司名单”,正式启动了国家防火墙修缮工作。嗯,还是国内的服务稳定。
离开Blogbus半年多了,今天回来。刚刚一个一个隐藏了以前的文章,换了模板。以后有空我在这里多敲敲键盘。
-
今天本来是要完成TCP/IP网际互联的实验,没想到费了大量时间在gcc的使用上。写好程序之后,用gcc编译出了一个诡异的问题
/usr/bin/ld: errno: TLS definition in /lib/libc.so.6 section .tbss mismatches non-TLS reference in /tmp/ccKZsHdg.o
/lib/libc.so.6: could not read symbols: Bad value
collect2: ld returned 1 exit status
看了这些提示,完全不知所云。代码完全是那本《用TCP/IP进行网际互联第三卷:客户——服务器编程与应用(Linux/POSIX套接字版)》上自带的吧,反正是从老师那里拷过来的。幸亏是回了寝室做实验,在网上搜了搜,看来遇到此问题的人士还不少。最后找到了解决办法。在我写的代码里有
extern int errno;
替换为
#include <errno.h>
即可。原因不得而知。可能是因为新的内核把有的地方改动了吧。








