qmake生成Makefile时如何指定编译器

qmake默认生成的Makefile中

CC            = gcc
CXX           = g++
LINK          = g++
AR            = ar cqs
STRIP         = strip

以上内容可以在pro文件中重新指定

QMAKE_CC = x86_64-linux-gnu-gcc
QMAKE_CXX = x86_64-linux-gnu-g++
QMAKE_LINK = x86_64-linux-gnu-gcc
QMAKE_AR = x86_64-linux-gnu-ar
QMAKE_STRIP = x86_64-linux-gnu-strip

arm版本busybox下载

编译平台:在树莓派上编译,支持安卓手机上执行。
CPU信息:

pi@raspberrypi ~/code/busybox-1.22.1 $ cat /proc/cpuinfo
processor       : 0
model name      : ARMv6-compatible processor rev 7 (v6l)busybox
BogoMIPS        : 2.00
Features        : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7

Hardware        : BCM2708
Revision        : 000e
Serial          : 00000000678d92f9

该busybox包含大部分功能,个别几个功能由于编译不过去掉了。 继续阅读 »

Subversion服务器配置,不同版本库使用同一份配置文件

假设当前路径为版本库所在根目录。
Subversion服务启动命令如下:
svnserve -d -r ./ --config-file svnserve.conf
svnserve.conf在每个版本库下的conf文件夹下都有,可以自己拷贝一份,然后修改其中的passwd等路径。这样就可以让所有的版本库使用同一份权限文件了,不用每加一个版本库就修改一次password了。

win32 创建指定客户区大小的窗口

CreateWindow(TEXT(""), TEXT(""), WS_OVERLAPPEDWINDOW,
	CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

上面是创建一个窗口,位置和大小都有系统随意指定。

一般来说,如果写一个win32窗口,想指定其大小,往往第一感觉应该是客户区大小才对,因为鼠标等消息返回的坐标是客户区坐上叫为原点的。但事实却是:创建的窗口大小是包括标题栏等表框的,这让很多想要有指定客户区大小的初学者苦恼了(^_^包括我)。

下面介绍一种比较方便的方法来创建一个指定客户区大小的窗口:

RECT rect;
rect.right = w;
rect.bottom = h;
rect.left = 0;
rect.top = 0;
AdjustWindowRect(&rect, WS_OVERLAPPEDWINDOW, false);
CreateWindow(TEXT(""), TEXT(""), WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, 0, rect.right - rect.left, rect.bottom - rect.top,
NULL, NULL, hInstance, NULL);

继续阅读 »

MD5加密c++版

很久之前就对md5很好奇,抽空研究了一下,算法过程还是挺简单的,为什么是这个过程就不是我辈能参透的了。自己写了个c++版本的,希望对md5好奇的朋友们有帮助。
md5.h

#include <string>

typedef unsigned int uint;

class MD5
{
public:
	MD5();
	std::string md5(std::string str);
	uint turnhex(uint);

private:
	uint m_k[64];
	uint m_a;
	uint m_b;
	uint m_c;
	uint m_d;
	static uint m_r[64];

};

继续阅读 »

ubuntu10.10下编译glibc

目的很单纯,就是下一个glibc看看源码,学习学习。学习之前想编译一下,编译不过当然不爽。
分享一下,希望对同样目的单纯的人有所帮助。

glibc源码下载地址ftp://ftp.gnu.org/gnu/glibc/
一开始下载了glibc-2.9.tar.bz2

configure: error:
*** These critical programs are missing or too old: as ld
*** Check the INSTALL file for required versions.

出现这个错误,估计是和内核版本不匹配。
查看下系统使用的libc的版本号

~$ ls -l /lib/libc.so.6
lrwxrwxrwx 1 root root 14 2012-11-03 23:16 /lib/libc.so.6 -> libc-2.12.1.so

因为只是学习,版本不重要,就下了glibc-2.12.2。

然后解压到glibc-2.12.2目录。

~/glibc-2.12.2$ ./configure 
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking how to run the C preprocessor... gcc -E
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
configure: error: you must configure in a separate build directory

继续阅读 »

windows xp sp2升sp3补丁下载

装xp前,很多人不知道自己装的是哪个版本的系统,等装好了才发现是sp2,有些软件这个版本不能用什么什么的。装了这么久才装好的系统再重装是多么令人崩溃的事情,其实sp2的话只要升级一下就行了。方法很多,用360等升级一下,或者直接下载sp2升sp3的补丁。由于我是装在虚拟机里,不想装360等、直接用windows update又比较慢,于是就选择了下载补丁。现在网上各种无效链接,找个补丁也不好找,我找了好一会,找到个满意的,分享一下,利人利己,方便以后下载。

Windows® XP Service Pack 3 (SP3) 包含所有以前发布的操作系统更新程序

这个是微软打包的镜像,省去很多升级的时间。
n久前,帮同学装了个sp2的xp,无线连不上wpa2的,后来发现,sp2是不支持wpa2加密的。遇到同样问题的不妨打个补丁。

linux中vi编辑模式下按方向键显示ABCD问题的解决办法

使用过linux下vi编辑器的朋友可能遇到同样的问题。
解决办法很简单,只要在当前用户目录下创建一个文件“.vimrc”。内容如下

set backspace=indent,eol,start
set nocp

其中第一行是解决backspace无法删除换行符的问题。

html5 俄罗斯方块源码

html5俄罗斯方块下载

最小生成树Prim算法

看Prim算法之前要先知道什么是最小生成树。

对于一个如下的图,求最小生成树的权值。

首先定义一个数组map[N][N](N根据题目决定大小)存放权值。对其进行初始化:

0 1 2 3 4 5 6
0
1 5 8
2 5 6 8
3 8 1
4 6 3 5
5 8 1 3 6
6 5 6

继续阅读 »