12/30/2008

gcc 的问题?

最近我手头的项目代码编译报错,遇到两个问题,首先是出现以下错误:

include/mxdef.h:56: error ‘NULL’ was not declared in this scope

我的开发环境:
>gcc -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.2.3/work/gcc-4.2.3/configure --prefix=/usr --bindir=/usr/i686-pc-linux-gnu/gcc-bin/4.2.3 --includedir=/usr/lib/gcc/i686-pc-linux-gnu/4.2.3/include --datadir=/usr/share/gcc-data/i686-pc-linux-gnu/4.2.3 --mandir=/usr/share/gcc-data/i686-pc-linux-gnu/4.2.3/man --infodir=/usr/share/gcc-data/i686-pc-linux-gnu/4.2.3/info --with-gxx-include-dir=/usr/lib/gcc/i686-pc-linux-gnu/4.2.3/include/g++-v4 --host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --disable-libgcj --with-arch=i686 --enable-languages=c,c++,treelang,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
gcc version 4.2.3 (Gentoo 4.2.3 p1.0)

>gcc-config -l
[1] i686-pc-linux-gnu-3.3.6
[2] i686-pc-linux-gnu-4.1.2
[3] i686-pc-linux-gnu-4.2.3 *
[4] i686-pc-linux-gnu-4.3.1

以前可以编译通过的,估计是更新 Gentoo 后带来的问题,我也不知道具体是哪里的问题,于是尝试用其它版本的 gcc 编译,用 gcc-4.1.2 编译结果和上面是一样的,而用gcc-4.3.1 编译之后,出现以下错误:

include/cdc.h:116: error: multiple parameters named ‘r’

头文件 cdc.h 第116行为:

static gal_pixel RGB2Pixel (int r, int g, int b, int r=255);

gcc-4.2.3以及4.1.2 都忽略这个了阿,这样可以声明的函数有没有问题?待确认。

第一个问题已经解决了,在头文件 mxdef.h 中增加
#include <string.h> 就可以了。

12/15/2008

用 Python 写了个脚本

最近完成了一个简单的脚本,写的过程中对 Python 有了进一步的了解。脚本的目的是把一个文本文件中的数据进行拆分,然后把结果存为 Excel 文件。其中拆分的过程中主要用到了正则表达式,写Excel 文件用的是 pyExcelerator,如果Excel 文件已经打开,写的时候会失败的,要加异常处理。