<?xml version="1.0" encoding="UTF-8"?><rss version="0.92">
<channel>
	<title>龍昌博客</title>
	<link>http://www.xefan.com</link>
	<description>关注Linux及开源信息</description>
	<lastBuildDate>Wed, 18 Jan 2012 02:09:35 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	<!-- generator="WordPress/3.2.1" -->

	<item>
		<title>Windows下静态编译Qt4</title>
		<description><![CDATA[既然是静态编译，那就要编译出来的程序不信赖于任何dll文件。 首先下载qt-win-opensource-4.7.4-mingw.exe： http://get.qt.nokia.com/qt/source/qt-win-opensource-4.7.4-mingw.exe 和MinGW-gcc440_1.zip： http://get.qt.nokia.com/misc/MinGW-gcc440_1.zip 然后依次解压MinGW-gcc440_1.zip、安装qt-win-opensource-4.7.4-mingw.exe。记得要将gcc的目录和qt的目录添加到环境变量中。 然后打开DOS窗口并切换到Qt的目录（比如我的是D:\Qt\4.7.4），再设置两个变量 set QTDIR=D:\Qt\4.7.4 set QMAKESPEC=win32-g++ 再编辑D:\Qt\4.7.4\mkspecs\win32-g++\qmake.conf文件（最好先备份），改两处： QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc 修改为 QMAKE_LFLAGS = -static -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc 再将 QMAKE_LFLAGS_DLL = -shared 修改为 QMAKE_LFLAGS_DLL = -static 再执行命令： configure -platform win32-g++ -release -opensource -static -fast &#8230; <a href="http://www.xefan.com/archives/83668.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83668.html</link>
			</item>
	<item>
		<title>Linux下静态编译win32的GTK程序</title>
		<description><![CDATA[首先感谢hangyu网友分享的GTK静态库。 原帖地址：http://forum.ubuntu.org.cn/viewtopic.php?f=162&#38;t=354286 下载地址：http://code.google.com/p/static-gtk2-mingw32/ 先说一下在Windows下编译的方法。 解压文件，然后进入解压后的bin目录执行命令： pkg-config.exe &#8211;libs &#8211;cflags “gtk+-2.0&#8243; 如果出现以下错误 Package gtk+-2.0 was not found in the pkg-config search path. Perhaps you should add the directory containing `gtk+-2.0.pc&#8217; to the PKG_CONFIG_PATH environment variable No package &#8216;gtk+-2.0&#8242; found 则先执行命令：set PKG_CONFIG_PATH=你的解压路径\lib\pkgconfig 设置PKG_CONFIG_PATH环境变量 我得到的结果是： &#8230; <a href="http://www.xefan.com/archives/83665.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83665.html</link>
			</item>
	<item>
		<title>linux下交叉编译windows程序</title>
		<description><![CDATA[有时候需要编写在Windows下运行的程序，但是又不想切换到Windows下来编译，于是就想在Linux下来编译Windows下运行的exe文件。 这个需要先安装mingw32交叉编译工具。 ubuntu下使用命令：sudo apt-get install mingw32进行安装， Arch Linux下使用命令：sudo pacman -S mingw32-binutils mingw32-gcc mingw32-pthreads mingw32-runtime mingw32-w32api 安装完后测试一下效果。 将以下代码保存为mingw32_test.c文件。 然后执行命令： [lcj@lcj C]$ i486-mingw32-gcc -o mingw32_test.exe mingw32_test.c mingw32_test.c: In function &#8216;main&#8217;: mingw32_test.c:3:5: warning: incompatible implicit declaration of built-in function &#8216;printf&#8217; [enabled by default] &#8230; <a href="http://www.xefan.com/archives/83663.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83663.html</link>
			</item>
	<item>
		<title>Linux NFS服务器设置</title>
		<description><![CDATA[我用的是Arch Linux，不过不同的版本应该都差不多吧。 1、首先安装nfs-utils软件包。 2、修改/ect/exports文件，添加分享，格式为： 路径 允许的主机(属性) 如：/opt/arm 192.168.1.*(ro,sync,no_root_squash) 3、启动nfs服务。 执行命令：/etc/rc.d/nfs-server start 现在可以在其他主机上使用mount命令来挂载该主机的分享目录，命令格式：mount -t nfs -o nolock 主机:/路径 挂载点  如：mount -t nfs -o nolock 192.168.1.100:/opt/arm /mnt/nfs  如果挂载时出现提示：mount.nfs: access denied by server while mounting，说明请求被拒绝了。 修改/ect/hosts.allow文件（没有请自行创建），添加允许，格式 portmap: 主机/网段 :allow 如： portmap: 192.168.1.100 :allow &#8230; <a href="http://www.xefan.com/archives/83661.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83661.html</link>
			</item>
	<item>
		<title>Linux samba服务器设置</title>
		<description><![CDATA[我用的是Arch Linux，不过各个版本的Linux的设置应该都差不多吧。 1、首先安装samba。 2、/etc/samba/smb.conf为samba的配置文件，所有的修改操作都在此文件中进行。/etc/samba/smb.conf.default为配置模板，可以参照其进行配置。 例如要添加一项分享，可以修改/ect/samba/smb.conf文件，添加如下内容： [printers]                                 #显示分享名 comment = All Printers path = /var/spool/samba     #分享的路径 browseable = yes         &#8230; <a href="http://www.xefan.com/archives/83658.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83658.html</link>
			</item>
	<item>
		<title>Arch+xfce自动挂载</title>
		<description><![CDATA[我的是Arch Linux的系统，用的xfce4的桌面。 网上的方法是通过编写rules文件用udev来自动挂载，不过rules太复杂了，看了半天没看懂。 我用的方法是安装gvfs，命令： #pacman -S gvfs 然后重启一下系统，现在就可以自动挂载移动硬盘、U盘、光盘了，并且之前一直隐藏的“回收站”也显示了。 https://wiki.archlinux.org/index.php/Xfce#Removable_Devices &#160;]]></description>
		<link>http://www.xefan.com/archives/83656.html</link>
			</item>
	<item>
		<title>使用Glade进行GTK开发</title>
		<description><![CDATA[在前面的文章介绍了使用Glade进行PyGTK开发，现在再来说一说使用Glade来进行GTK的开发。 首先需要的开发环境： Glade3、GTK+2.0、GCC 先用Glade设计一个用户界面，保存为test.glade，内容如下： 再创建一个C源文件，保存为test.c，内容如下： 然后再编译运行查看效果。 如果出现类似“Gtk-WARNING **: Could not find signal handler &#8216;on_MainWindow_destroy&#8217;”的错误请尝试以下方法： 方法一：将编译命令改为：gcc -o test test.c `pkg-config &#8211;libs &#8211;cflags gtk+-2.0` -export-dynamic 方法二：将编译命令改为：gcc -o test test.c `pkg-config &#8211;libs &#8211;cflags libglade-2.0 gmodule-export-2.0`]]></description>
		<link>http://www.xefan.com/archives/83650.html</link>
			</item>
	<item>
		<title>永中Office的ibus输入法问题</title>
		<description><![CDATA[我在永中Office下无法调用ibus输入法，但是在其他窗口中都没有问题，如：gVIM，LeafPad，OpenOffice等等。我按照网上的方法在.bashrc文件中也添加了以下内容，可是还是不行。 export GTK_IM_MODULE=ibus export XMODIFIERS=@im=ibus export QT_IM_MODULE=ibus 正打算更换输入法时无意中发现了问题的所在。 首先用ps -e&#124;grep ibus命令发现只有 ibus-daemon、ibus-gconf两个进程。 然后执行命令/usr/lib/ibus/ibus-x11 &#38;，运行ibux-x11。 这时就有了 ibus-daemon、ibus-gconf、ibus-x11三个进程。此时在永中Office中可以正常使用ibus输入法了。 原来是ibus-x11没有运行的原因，如果不想每次都手动运行的话，可以将它设置为开机自动启动。]]></description>
		<link>http://www.xefan.com/archives/83648.html</link>
			</item>
	<item>
		<title>使用Glade进行PyGTK开发</title>
		<description><![CDATA[使用Glade来进行GTK开发效率比较高，下面是一个例子。 将以下代码保存为test.glade文件。 将以下代码保存为test.py文件。 然后运行查看效果。]]></description>
		<link>http://www.xefan.com/archives/83642.html</link>
			</item>
	<item>
		<title>用PyGTK创建Dialog对话框</title>
		<description><![CDATA[PyGTK创建Dialog的函数如下： gtk.Dialog(title=None, parent=None, flags=0, buttons=None) 原文地址：http://www.pygtk.org/docs/pygtk/class-gtkdialog.html#constructor-gtkdialog 下面是一个例子：]]></description>
		<link>http://www.xefan.com/archives/83639.html</link>
			</item>
	<item>
		<title>Arch Linux安装xfce和slim</title>
		<description><![CDATA[这几天终于把Arch Linux + Xfce + slim配置好了，做个笔记备忘。 安装Xfce https://wiki.archlinux.org/index.php/Xfce_(简体中文) 安装准备 请在安装与使用xfce前确认已经安装有xorg以及hal。 # pacman -S xorg hal 默认安装的archlinux是不包含xorg以及hal的。如果不安装两者，将造成xfce无法启动。HAL 已经被诸如udev,udisks,upower这些程序替代 。 安装XFCE系统(Xfce 4.8) # pacman -S xfce4 xfce4-goodies # pacman -S $(pacman -Sgq xfce4-goodies &#124; grep -v xfce4-xfapplet-plugin) 默认安装的xfce4，首次启动出现的小提示窗口里面是没有任何东西的。如果你想看到刚启动时候的技巧和小提示，那么就需要安装fortune-mod # pacman -S fortune-mod &#8230; <a href="http://www.xefan.com/archives/83637.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83637.html</link>
			</item>
	<item>
		<title>Arch Linux安装IBus</title>
		<description><![CDATA[安装ibus # pacman -S ibus # pacman -S ibus-qt 安装输入法 ibus-pinyin:拼音输入法 ibus-table:一个框架，五笔信赖于它 # pacman -S ibus-{pinyin,table} # yaourt -S ibus-table-wubi 在~/.bashrc文件中添加如下内容： export GTK_IM_MODULE=ibus export XMODIFIERS=@im=ibus export QT_IM_MODULE=ibus 然后执行命令运行ibus: # ibus-daemon]]></description>
		<link>http://www.xefan.com/archives/83634.html</link>
			</item>
	<item>
		<title>Arch Linux安装</title>
		<description><![CDATA[1、首先用Arch Linux的引导盘引导进入live CD。ISO文件下载地址：http://www.archlinux.org/download/ 2、以root身份执行脚本： # /arch/setup 然后你就会看到 ArchLinux 安装框架的屏幕。 3、根据自己的情况进行选择 注意在第4项进行磁盘分区时要小心选择，否则操作失误会丢失数据。 安装完后重启即可进入Arch Linux https://wiki.archlinux.org/index.php/Beginners&#8217;_Guide_(简体中文)#.E5.AE.89.E8.A3.85.E5.9F.BA.E6.9C.AC.E7.B3.BB.E7.BB.9F &#160;]]></description>
		<link>http://www.xefan.com/archives/83630.html</link>
			</item>
	<item>
		<title>arm9-2440 linux下烧写</title>
		<description><![CDATA[超级终端：使用minicom加ckermit组合，也可以单独使用Gtkterm来代替SecureCRT。 将Port设为设备名，如ttyUSB0。speed改为115200。如图： ckermit安装好后，进行配置 vi /etc/kermit/kermrc set line /dev/ttyUSB0 set speed 115200 set carrier-watch off set handshake none set flow-control none robust set file type bin set file name lit set rec pack 1000 set send pack 1000 set window 5 &#8230; <a href="http://www.xefan.com/archives/83624.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83624.html</link>
			</item>
	<item>
		<title>Ubuntu 10.10 crosstool ARM交叉编译</title>
		<description><![CDATA[弄了两天，经过了N次失败后现在终于编译成功了，赶紧做个笔记。 1、下载crosstool(http://www.kegel.com/crosstool/crosstool-0.43.tar.gz) 2、下载编译过程中需要用到的源代码，虽然crosstool也会自动下载不过速度很慢，建议还是自己先下载好，源代码的版本根据自己的情况选择： binutils-2.15 http://ftp.gnu.org/gnu/binutils/ gcc-3.4.5 http://ftp.gnu.org/gnu/gcc/ glibc-2.3.6 ftp://ftp.gnu.org/gnu/glibc/ glibc-linuxthreads-2.3.6 ftp://ftp.gnu.org/gnu/glibc/ linux-2.6.10 http://ftp.cc.uoc.gr/mirrors/ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.10.tar.gz linux-libc-headers-2.6.12.0 http://ep09.pld-linux.org/~mmazur/linux-libc-headers/linux-libc-headers-2.6.12.0.tar.bz2 将以上七个压缩包放在同一个目录下。 3、编译过程依赖这几个软件，没有的请自行安装。Bison、flex 、build-essential、patch 、libncurses5-de 还有gcc的编译依赖于gmp、mpfr、mpc这几个软件，没有的请先安装。 mpc-0.9.tar.gz http://www.multiprecision.org/mpc/download/mpc-0.9.tar.gz mpfr-3.0.1.tar.bz2 http://www.mpfr.org/mpfr-current/mpfr-3.0.1.tar.bz2 gmp-5.0.2.tar.bz2 ftp://ftp.gmplib.org/pub/gmp-5.0.2/gmp-5.0.2.tar.bz2 这几个软件之间也存在依赖关系，请按顺序依次安装gmp、mpfr、mpc 4、修改配置 1)、ubuntu10.10自己的GCC是4.4版本，使用这个版本的进行编译会出错，建议使用gcc-4.1。 sudo apt-get install gcc-4.1 sudo rm /usr/bin/gcc sudo ln -s /usr/bin/gcc-4.1 &#8230; <a href="http://www.xefan.com/archives/83613.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83613.html</link>
			</item>
	<item>
		<title>I2C串口总线驱动程序(汇编语言)</title>
		<description><![CDATA[]]></description>
		<link>http://www.xefan.com/archives/83610.html</link>
			</item>
	<item>
		<title>I2C协议说明</title>
		<description><![CDATA[IIC（Inter &#8211; Integrated Circuit）总线是菲利浦公司推出的芯片间串行传输总线。它用两根线实现了完善的全双工同步数据传送。 I2C串行总线一般有两根信号线，一根是双向的数据线SDA，另一根是时钟线SCL。所有接到I2C总线设备上的串行数据SDA都接到总线的SDA上，各设备的时钟线SCL接到总线的SCL上。 I2C总线在传送数据过程中共有三种类型信号，它们分别是： 开始信号、结束信号和应答信号。 开始信号：SCL为高电平时，SDA由高电平向低电平跳变，开始传送数据。 结束信号：SCL为高电平时，SDA由低电平向高电平跳变，结束传送数据。 应答信号：数据接收完后，受控单元向主控单元发送一个应答信号。 开始信号是必需的，结束信号和应答信号可以不要。 数据传输格式如下： 主控写： 开始&#124; 寻址字节（写）&#124; 应答&#124; 数据&#124; 应答&#124; …&#124; 数据&#124; 应答&#124; 结束 主控读： 开始&#124; 寻址字节（读）&#124; 应答&#124; 数据&#124; 应答&#124; …&#124; 数据&#124; 非应答&#124; 结束 下划线部分表示主控发送，被控接收；其余为主控接收，被控发送。 时钟脉冲如图所示：]]></description>
		<link>http://www.xefan.com/archives/83607.html</link>
			</item>
	<item>
		<title>Pygame学习笔记11：手柄</title>
		<description><![CDATA[手柄 joystick模块管理计算机上的手柄设备（可能多于一个）。手柄设备包括轨迹球、类似电视游戏机的游戏手柄，允许使用多个按钮和’hats’。 pygame.joystick.get_count函数可以获得系统中手柄的个数。比如： count = pygame.joystick.get_count() 如果系统没有手柄，数量是0。 如果系统有手柄，可以通过pygame.joystick.Joystick来创建手柄对象： j = pygame.joystick.Joystick(0) 其中的整数是手柄的id，取值范围从0到count-1。 创建对象后，需要先初始化 j.init() 初始化后，事件队列中就可以收到来自手柄的事件了。事件类型分为： JOYAXISMOTION joy, axis, value JOYBALLMOTION joy, ball, rel JOYHATMOTION joy, hat, value JOYBUTTONUP joy, button JOYBUTTONDOWN joy, button 要注意pygame.JOYAXISMOTION事件的value值在-1.0和1.0之间。值0.0表示轴在正中间。游戏手柄设备一般只有-1、0、1三个值，而没有中间的值。而老的模拟手柄并不一定能完全达到-1到1的区间，中间的值也可能是0附近的一个值。模拟手柄通常会有一点噪声，从而会产生很多很小很快的运动事件。当轨迹球滚动时，pygame.JOYBALLMOTION事件会发生。它会报告轨迹球总共滚动了多少距离。当按钮被按下和释放时，会产生pygame.JOYBUTTONDOWN和pygame.JOYBUTTONUP事件。当hat的位置改变时，pygame.JOYHATMOTION事件会产生。事件的位置属性包括一对值，它们是-1或者0或者1。位置(0,0)表示hat在正中间。 要获得手柄的轴数可以使用 j.get_numaxes() 要获得手柄上轨迹球的个数，可以使用 j.get_numballs() 要获得手柄上的按键数，可以使用 j.get_numbuttons() &#8230; <a href="http://www.xefan.com/archives/83605.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83605.html</link>
			</item>
	<item>
		<title>Pygame学习笔记10：鼠标</title>
		<description><![CDATA[鼠标 当显示模式设置后，事件队列就会开始收到鼠标事件。当按下和释放鼠标的按键时，会产生 pygame.MOUSEBUTTONDOWN和pygame.MOUSEBUTTONUP事件。这些事件包含一个button属性表示哪些键被按下。滚动鼠标滚轮会产生pygame.MOUSEBUTTONDOWN事件。当向上滚动滚轮时button的值是4，向下滚动时button的值是5。除此外还有一个pos属性，表示按键按下或释放时鼠标指针的位置。当移动鼠标时，会产生pygame.MOUSEMOTION事件。鼠标移动事件会被分解成一组较小的精确的移动事件。当鼠标移动时，会有很多事件被放在队列中。鼠标移动事件没有被正确的清除，常常是事件队列被填满的主要原因。鼠标移动事件包括一个buttons属性，表示鼠标移动时，鼠标键的状态。还有一个pos属性，表示鼠标指针的位置。还有一个rel属性表示当前位置相对于上一次事件发生时指针位置的偏移量。 除了可以通过事件来接受鼠标输入外，还可以直接调用函数检查鼠标的状态。pygame.mouse.get_pressed可以获得当前所有鼠标按键的状态。pygame.mouse.get_pos获得当前鼠标的位置。pygame.mouse.get_rel获得当前鼠标位置相对于前一个位置的位移。 用pygame.mouse.set_visible可以隐藏鼠标的指针。如果鼠标指针被隐藏，输入被当前的display捕获，鼠标会进入虚拟输入模式，这种模式下鼠标的相对位移不会收到屏幕边界的影响。 通过pygame.mouse.set_cursor可以设置鼠标指针的形状。 pygame.mouse.set_cursor(size, hotspot, xormasks, andmasks): return None 当鼠标指针可见时，它会显示为给定的位域数组指定的黑白色的位图。size是包含指针高度和宽度的列表。hotspot是表示指针的热点位置的列表。xormasks是序列包含指针异或数据位域的序列，andmask是一组包含指针位域数据的序列。宽度必须是8的倍数，位域数组必须是size给定的正确的大小。 pygame.cursors模块包括了几个内置的指针形状。可以这样使用 pygame.mouse.set_cursor(*pygame.cursors.arrow) 可以使用的指针形状有： pygame.cursors.arrow pygame.cursors.diamond pygame.cursors.broken_x pygame.cursors.tri_left pygame.cursors.tri_right 偶自己写的一个扫雷小游戏，全鼠标操作的。下载地址：http://app.xefan.com/小游戏/扫雷/]]></description>
		<link>http://www.xefan.com/archives/83603.html</link>
			</item>
	<item>
		<title>Pygame学习笔记9：键盘</title>
		<description><![CDATA[键盘 当键盘的按键被按下时，事件队列会得到pygame.KEYDOWN和pygame.KEYUP事件。这两个事件都有一个叫做key的整型属性表示键盘上的键。pygame.KEYDOWN事件还有一个额外的属性unicode，表示键盘输入的转后对应的字符。这个字符会考虑shift键和其它组合键的状态。 有很多键盘相关的常量，他们表示键盘上的键。下面是所有键盘常量的列表： KeyASCII      ASCII   Common Name K_BACKSPACE   \b      backspace K_TAB         \t      tab K_CLEAR               clear K_RETURN      \r     &#8230; <a href="http://www.xefan.com/archives/83601.html">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
		<link>http://www.xefan.com/archives/83601.html</link>
			</item>
</channel>
</rss>

