首先从MYSQL官方网站下载MYSQL源代码,本文以 mysql-4.0.20 为例。 $ tar -zxvf mysql-4.0.20.tar.gz $ cd mysql-4.0.20 编译过程中主要需解决两个问题: #pragma interface 由于CYGWIN环境中不支持 #pragma interface,所以需注释掉所有文件中的 #pragma interface,用以下命令可实现: $ grep -rl "#pragma interface" * | xargs -r sed -i "s:#pragma interface:/*\0*/:g" pthread 编译过程中还会出现`PTHREAD_MUTEX_ERRORCHECK_NP'未申明的错误,原因也是在CYGWIN中还不能用,请查看这里的说明。偶的做法是将 mysys/my_thr_init.c 文件的65-73行注释掉。 #ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP // pthread_mutexattr_init(&my_fast_mutexattr); // pthread_mutexattr_setkind_np(&my_fast_mutexattr,PTHREAD_MUTEX_ADAPTIVE_NP); #endif #ifdef PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP // pthread_mutexattr_init(&my_errchk_mutexattr); // pthread_mutexattr_setkind_np(&my_errchk_mutexattr, // PTHREAD_MUTEX_ERRORCHECK_NP); #endif 下面才真正开始编译 $ CFLAGS="-O3" \ $ CXXFLAGS="-O3 -felide-constructors -fno-exceptions -fno-rtti" \ $ ./configure --prefix=/usr/local/mysql \ --with-mysqld-ldflags=-all-static \ --with-charset=gbk $ make $ make install $ ./scripts/mysql_install_db $ /usr/local/mysqlbin/mysqld_safe --user=administrator & 至此编译已结束,据偶目前的使用情况来看,还未出现过什么问题 :) Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=70513 [点击此处收藏本文] 发表于 2004年08月10日 6:17 PM rixion 发表于2004-09-02 8:27 AM IP: 133.105.90.* 非常好啊,非常有帮助,谢谢 akay 发表于2004-10-20 11:12 PM IP: 220.173.36.* 修改为下面的更好些 Change lines 71 & 72 to: #ifdef __CYGWIN__ pthread_mutexattr_settype(&my_errchk_mutexattr, PTHREAD_MUTEX_ERRORCHECK); #else pthread_mutexattr_setkind_np(&my_errchk_mutexattr, PTHREAD_MUTEX_ERRORCHECK_NP); #endif