#if !defined(lint) && !defined(__lint)
为
#if !defined(lint) && !defined(__lint) && !defined(getwc) 另外,你可以直接编辑“/usr/include/widec.h”。这两种方法,在你进行修正以后,你应该删除“config.cache”并且再运行configure!
如果当你运行make时,你得到象这样错误,那是因为configure没检测“curses.h”文件(可能因为/usr/include/widec.h的错误):
In file included from mysql.cc:50: /usr/include/term.h:1060: syntax error before `,' /usr/include/term.h:1081: syntax error before `;' 解决它的方案是做下列步骤之一:
如上所述编辑“/usr/include/widec.h”并且再次运行configure。 从“config.h”文件删除#define HAVE_TERM行并再次运行make。 用CFLAGS=-DHAVE_CURSES CXXFLAGS=-DHAVE_CURSES ./configure进行配置。 4.11.3 Solaris x86 注意事项 如果你正在在 Solaris x86上使用gcc或egcs,并且你碰到了在装载时的核心倾倒(core dump)问题,你应该使用下列configure命令:
shell> CC=gcc CFLAGS="-O6 -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql 用libstdc++库和与C++异常处理来避免这个问题。
如果这没有帮助,你应该编译一个调试版本并且用一个踪迹文件运行它或在gdb下运行它。见G.1 调试一个 MySQL 服务器。
SunOS 4 注意事项 在 SunOS 4 上, 需要MIT-pthreads 编译MySQL,反过来这意味着你将需要GNU make。
一些SunOS 4系统的动态库和libtool有问题。你可以使用下列configure行来避免这个问题:
shell> ./configure --disable-shared --with-mysqld-ldflags=-all-static 当编译readline时,你可能得到关于重复定义的警告,这些可以被忽略。
当编译mysqld时候, 将有一些implicit declaration of function警告,这些可以被忽略。
4.11.5 Linux 注意事项(所有Linux版本) MySQL在Linux上使用 LinuxThreads 。如果你正在使用一个没有glibc2的老的Linux版本,你必须在尝试编译MySQL前安装LinuxThreads。Http://www.mysql.com/Downloads/Linux
注意:但你做INSERT DELAYED时,所用的包括2.1.1及以前的glibc版本在pthread_mutex_timedwait处理上有一个致命错误,如果你正在使用INSERT DELAYED,你必须把下列补丁加到你的glibc库中:http://www.mysql.com/Downloads/Patches/glibc-pthread_cond_timedwait.patch。MySQL 3.23.7包含了对这个错误的一个临时解决办法。
如果你不能启动mysqld或如果mysql_install_db不工作,请继续读下去!这仅发生在有LinuxThreads问题或libc/glibc库为题的Linux系统上。有很多简单的解决办法让MySQL工作!最简单是使用针对Linux x86的二进制版本的MySQL(不是RPM),这个版本的一个好的方面是它可能比你编译你自己的任何版本快10%!见10.2.1 编译和链接如何影响 MySQL 的速度。
二进制分发的一个已知问题是与使用libc的更老的Linux系统(如RedHat 4.x 或 Slackware),你将得到有关主机名解决的一些非致命问题。见4.6.3.1 Linux注意事项。
使用libc.so.5.3.12,myisamchk将挂起,升级到最新libc以解决这个问题。
当使用 LinuxThreads 时,你将看到最少 3 进程在运行。这些事实上的线程,对LinuxThreads管理器将有一个线程,一个线程处理连接,还有一个线程处理告警和信号。
如果你用ps看到了一个死掉的mysqld守护进程,这通常意味着你发现了MySQL里面的一个错误或你有一个被破坏的数据库表。见18.1 如果MySQL总是崩溃怎么办。
如果你正在使用LinuxThreads并且mysqladmin shutdown不工作,你必须升级到 LinuxThreads 0.7.1 或更新。
如果你正在使用 RedHat ,你可能得到象这样的错误:
/usr/bin/perl is needed… /usr/sh is needed… /usr/sh is needed… 如果是这样,你应该升级rpm版本到“rpm-2.4.11-1.i386.rpm”和“rpm-devel-2.4.11-1.i386.rpm”(或以后)。
你能从ftp://ftp.redhat.com/updates/4.2/i386得到RedHat 4.2的库文件升级,或对其他分发http://www.sunsite.unc.edu/pub/Linux/distributions/redhat/code/rpm/。
如果你正在链接你自己的MySQL客户并且得到错误:
ld.so.1: ./my: fatal: libmysqlclient.so.4: open failed: No such file or directory 当执行它们时,这个问题可用下列方法之一避免:
用下列标志链接客户(而不是-Lpath): -Wl,r/path-libmysqlclient.so。 拷贝libmysqclient.so到“/usr/lib”。 在运行你的客户程序前,把libmysqlclient.so所在目录的路径名加到LD_RUN_PATH的环境变量中。 如果你正在使用 Fujitsu 编译器(fcc / FCC),编译MySQL你将有一些问题,因为 Linux 头文件面向gcc。
下列configure行应该与fcc/FCC工作:
CC=fcc CFLAGS="-O -K fast -K lib -K omitfp -Kpreex -D_GNU_SOURCE -DCONST=const -DNO_STRTOLL_PROTO" CXX=FCC CXXFLAGS="-O -K fast -K lib -K omitfp
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一页 1 2 34 5 6 7 8 下一页
上一篇:使用Perl编写CGI时需要注意的几个问题 下一篇:如何在win98/NT上添加perl语言的各种模块
|