2012年12月26日

摘要: 本文讨论的将是MinGW之上的静态编译,并且将抛开万年难伺候的QtWebkit进行编译。一、编译Qt 5.0与Qt 4.x不同的地方:1、Qt 5.0比以往相比,需要有perl环境。因此要在你的环境变量中添加perl。2、configure当中去除了一些参数,比如no-webkit,同时又添加了一些,比如icu。3、Webkit和QtCore都需要ICU。ICU是一个处理unicode的库,如果你没有准备,webkit的编译自动跳过,core的编译使用其它方法避开ICU。4、由于QPA的存在,与平台相关的部分被抽象成了插件,这个后面再说。5、默认启用了ANGLE作为OpenGL和DirectX 阅读全文

posted @ 2012-12-26 22:05 liuyanghejerry 阅读(6764) 评论(1) 推荐(1) 编辑


2012年12月9日

摘要: 最近开始慢慢使用C++11,在众多新特性的面前显得还有些力不从心。下面的代码视图使用一个静态常量数组作为类成员,并希望利用C++11特性直接在定义中赋值:class A{ const static char a[5] = {0};};// ...char tmp = A::a[2];然而直接这样做是错误的,为了通过编译器,必须将const替换为constexpr: class A{ constexpr static char a[5] = {0};};// ...char tmp = A::a[2];迈进一大步。但是这样还不够,因为链接器仍旧无法正确链接,于是你还需要这样做:cl... 阅读全文

posted @ 2012-12-09 09:43 liuyanghejerry 阅读(1602) 评论(0) 推荐(0) 编辑


2012年9月2日

摘要: 为了保持整个Windows的环境纯洁,有zip包的东西向来不会去用安装包。幸运的是,golang是有zip包提供的。但是如果直接解压而不外加其它措施,会提示很多包(package)找不到,所以在命令行中执行go相关命令之前,需要先设置几个环境变量。因为命令行当中的set命令作用域只在当前命令行会话,所以这不影响我们“保持纯净”。相关环境变量及设置样例如下:set GOBIN = d:\go\binset GOARCH = amd64 set GOOS = windows set GOROOT = d:\goset PATH = %PATH%;%GOBIN%大功告成。 阅读全文

posted @ 2012-09-02 12:35 liuyanghejerry 阅读(1209) 评论(0) 推荐(0) 编辑


2012年2月22日

摘要: 第一,nginx不支持.htaccess,需要自己在nginx.conf里面修正URL。第二,首先选择try_files,而不是rewrite,避免使用大量的if。nginx官网指出,if语句是应当尽量避免的。第三,nginx没有PATHINFO,需要自己模拟一个出来。综上,nginx.conf应当以类似如下形式使用:server { listen 80; server_name yourhost; index index.html index.htm index.php; root /home/wwwroot/yourdomain/#注意,用的是try_files,而不是rewrite+if 阅读全文

posted @ 2012-02-22 14:57 liuyanghejerry 阅读(357) 评论(0) 推荐(0) 编辑


2011年12月6日

摘要: 自从上篇博文写静态编译之后,好久没再折腾静态的东西了。今天心情比较好,补充一个静态链接的博文,内容来自http://www.formortals.com/how-to-statically-link-qt-4/。静态编译了Qt之后,有几样东西设置了之后才能够真正将你自己的程序生成为静态的。设置正确的Qt目录重新编译了Qt之后,你的工程所使用的Qt目录也应当有所变化。1、在Qt Creator中,Tools -> Options -> Qt4 选项中,将新的Qt目录添加进去2、在工程设置中,将release的编译配置当中的Qt目录改为你添加进去的新配置修改工程文件打开你的pro文件, 阅读全文

posted @ 2011-12-06 12:50 liuyanghejerry 阅读(993) 评论(0) 推荐(0) 编辑


2011年9月29日

摘要: 在Stackoverflow上看到的,上千人都在推荐这份列表,现在转载如下:Meta-ListsHow to Design Programs: An Introduction to Computing and Programming25 Free Computer Science EbooksFree Tech BooksMindView IncWikibooks: ProgrammingCheat Sheets (Free)CodePlex List of Free E-BooksBook Training - On Video!Sofware Program Managers Networ 阅读全文

posted @ 2011-09-29 23:58 liuyanghejerry 阅读(851) 评论(0) 推荐(0) 编辑


2011年9月21日

摘要: 一个Linux内核模块的Hello, World。有兴趣研究Linux内核的可以以此入门。/** hello.c – 本例取自《Linux Kernel Development 3rd》,稍作修改*///#include <linux/init.h> //早期的Linux内核源码存在这个头文件,2.6已经不存在了#include <linux/module.h> #include <linux/kernel.h>static int hello_init(void) {printk(KERN_ALERT “I bear a charmed life.\n”) 阅读全文

posted @ 2011-09-21 18:01 liuyanghejerry 阅读(753) 评论(0) 推荐(0) 编辑


2011年8月13日

摘要: boost是C++的一个相当强大的库,其对标准库的扩充堪称精湛到位。一般情况下,使用boost都是在Linux发行版或者Windows之下。在Windows下,如果使用微软的C++编译器,则编译过程没有任何问题,但如果使用MinGW,则会出现一些问题。boost官方所支持的是Cygwin,而不是MinGW。但是有时我们需要MinGW,如果你直接按照boost手册的说法来做,那么编译时会出现找不到sys/wait.h等几个头文件的问题。这几个头文件是POSIX子系统所需要的,但是MinGW当中并没有携带。我试图直接从Linux内核源码包当中拷贝过来,但是拷贝过来的将不只是一两个头文件的问题。因此 阅读全文

posted @ 2011-08-13 23:16 liuyanghejerry 阅读(1260) 评论(0) 推荐(0) 编辑


2011年8月8日

摘要: 背景:华硕在很多机型当中,都搭载了一个被称为“ExpressGate”的系统,该系统允许在开机的数秒之内(官方标称是8秒)进入一个迷你操作系统,该系统可以浏览网页、浏览图片等。实际上,该迷你操作系统是名为Splashtop的一个商业Linux操作系统的一个子版本。华硕的这一ExpressGate系统实际上根据不同机型,存在两个版本:SSD、HDD。前者将Splashtop存储于板载芯片当中,而后者则是将Splashtop存储于机器自带硬盘当中。我并没有SSD版本的机器,以下的内容均是基于HDD版本的描述。HHD版本的ExpressGate在机器硬盘的第零个分区上(不是C盘),这一分区为FAT3 阅读全文

posted @ 2011-08-08 20:32 liuyanghejerry 阅读(3041) 评论(0) 推荐(0) 编辑


2011年8月2日

摘要: Qt的LGPL发行版始终使用的是动态编译,因此所有的库都是动态链接的。这样做相对较为灵活,但并非十全十美——你将无法生成静态链接的程序。有人说,LGPL的版本不应该静态编译,但我觉得协议当中并没有这么说。对此,谁如果能说服我,欢迎留言。和我前几篇与编译有关的日志类似,我只是陈述一下大的步骤,不过绝大多数人都应该可以凭借这个简述开始编译。下载Qt 4.7.3地址:http://qt.nokia.com/downloads-cn。我选用的版本是官方预先准备的携带Qt Creator的版本,这个版本相对工具齐全,携带了我们需要的MinGW(对,我们要用它来编译)。如果你需要看的是有关VS上的编译,那 阅读全文

posted @ 2011-08-02 15:45 liuyanghejerry 阅读(2019) 评论(0) 推荐(0) 编辑


Copyright © 2024 liuyanghejerry
Powered by .NET 8.0 on Kubernetes