Kapitel 3: Installation von MySQL 77
Von Solaris und FreeBSD ist bekannt, dass sie problembehaftete make-Programme
haben.
GNU make Version 3.75 funktioniert bekanntermaßen.
• Wenn Sie Flags definieren wollen, die von Ihrem C- oder C++-Kompiler benutzt werden,
f¨ugen Sie die Flags den CFLAGS- und CXXFLAGS-Umgebungsvariablen hinzu. Sie k¨onnen
auf diese Weise auch die Kompilernamen festlegen, indem Sie CC und CXX benutzen.
Beispiel:
shell> CC=gcc
shell> CFLAGS=-O3
shell> CXX=gcc
shell> CXXFLAGS=-O3
shell> export CC CFLAGS CXX CXXFLAGS
Siehe Abschnitt 3.2.6 [MySQL binaries], Seite 66: Eine Liste von Flag-Definitionen, die
sich auf verschiedenen Systemen als n¨utzlich erwiesen haben.
• Wenn Sie einen Fehler wie den folgenden erhalten, m¨ussen Sie Ihren gcc-Kompiler
aktualisieren:
client/libmysql.c:273: parse error before ‘__attribute__’
gcc 2.8.1 funktioniert bekanntermaßen, aber wir empfehlen statt dessen gcc 2.95.2 oder
egcs 1.0.3a.
• Wenn Sie Fehler wie die unten stehenden erhalten, wenn Sie mysqld kompilieren,
hat configure den Typ des letzten Arguments f¨ur accept(), getsockname() oder
getpeername() nicht korrekt erkannt:
cxx: Error: mysqld.cc, line 645: In this statement, the referenced
type of the pointer value "&length" is "unsigned long", which
is not compatible with "int".
new_sock = accept(sock, (struct sockaddr *)&cAddr, &length);
Um das zu beheben, editieren Sie die ‘config.h’-Datei (die von configure angelegt
wird). Suchen Sie nach folgenden Zeilen:
/* Define as the base type of the last arg to accept */
#define SOCKET_SIZE_TYPE XXX
¨
Andern Sie XXX zu size_t oder int, abh¨angig von Ihrem Betriebssystem. (Beachten
Sie, dass Sie das jedes Mal tun m¨ussen, wenn Sie configure laufen lassen, weil
configure die Datei ‘config.h’ neu erzeugt.)
• Die ‘sql_yacc.cc’-Datei wird von ‘sql_yacc.yy’ erzeugt. Normalerweise muss der
Build-Prozess keine ‘sql_yacc.cc’ erzeugen, weil MySQL schon mit einer fertig
erzeugten Kopie daher kommt. Wenn Sie sie jedoch neu erzeugen m¨ussen, k¨onnten
Sie folgenden Fehler erhalten:
"sql_yacc.yy", line xxx fatal: default action causes potential...
Das ist ein Indiz daf¨ur, dass Ihre Version von yacc fehlerhaft ist. Sie m¨ussen statt
dessen wahrscheinlich bison (die GNU-Version von yacc) installieren und benutzen.
• Wenn Sie mysqld oder einen MySQL-Client debuggen wollen, lassen Sie configure
mit der --with-debug-Option laufen. Kompilieren Sie danach neu und linken Sie
Ihre Clients mit der neuen Client-Bibliothek. Siehe Abschnitt D.2 [Debugging client],
Seite 700.
Comentarios a estos manuales