当使用DBMaster编译PHP时,会发生“undefined reference to ´__ctype_b'”错误,原因是什么?该怎么办?(DBMR 1946, Version; DBMaster 4.2)
这个错误不是DBMaster的问题;它是Linux glibc版本问题。DBMaster使用glibc-2.1来make静态库,但是glibc-2.3删除了一些函数—ctype_b(), _ctype_toupper()…并且glibc保证共享库的二进制兼容性,这些共享库不包括静态库,所以不能保证静态库是兼容的,这就是返回undefined reference to ´__ctype_b'错误信息的原因。
用以下的方法解决这个问题:
1. 移动/home/dbmaster/4.2/lib/libdmapic.a到别的文件夹下。
2. 复制/home/dbmaster/4.2/lib/so/libdmapic.so到/home/dbmaster/4.2/lib/。
3. ./configure --with-apxs2=/usr/local/apache/bin/apxs --with-dbmaster=/home/dbmaster/4.2 --enable-track-vars --enable-mbstring
4. make
这是一个连接.so的解决方法,别的客户已经make成功并应用于他们的系统中。