[AIX-5.3]Postfix met MySQL support laat zich niet compileren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Okay,

Ik probeer Postfix-2.7.0 te compileren met gcc-4.2.4 met support voor MySQL 5.1.45.
Dit is wat ik meegeef aan make:

 make -f Makefile.init makefiles \ 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' \ 'AUXLIBS=-L/usr/local/mysql/lib -bloadmap -lmysqlclient -lz -lm' CC="/usr/bin/gcc"


Dat gaat helemaal goed totdat ik 'make install' intik en dan krijg ik deze error:
[src/error]
        /usr/bin/gcc -DHAS_MYSQL -I/usr/local/mysql/include -D_ALL_SOURCE -DHAS_POSIX_REGEXP -g -O -I. -I../../include -DAIX5 -c error.c
        /usr/bin/gcc -DHAS_MYSQL -I/usr/local/mysql/include -D_ALL_SOURCE -DHAS_POSIX_REGEXP -g -O -I. -I../../include -DAIX5 -o error error.o ../../lib/libmaster.a ../../lib/libglobal.a ../../lib/libutil.a -L/usr/local/mysql/lib -lmysqlclient -lz -lm
ld: 0711-317 ERROR: Undefined symbol: .mysql_close
ld: 0711-317 ERROR: Undefined symbol: .mysql_query
ld: 0711-317 ERROR: Undefined symbol: .mysql_store_result
ld: 0711-317 ERROR: Undefined symbol: .mysql_error
ld: 0711-317 ERROR: Undefined symbol: .mysql_num_rows
ld: 0711-317 ERROR: Undefined symbol: .mysql_init
ld: 0711-317 ERROR: Undefined symbol: .mysql_real_connect
ld: 0711-317 ERROR: Undefined symbol: .mysql_free_result
ld: 0711-317 ERROR: Undefined symbol: .mysql_fetch_row
ld: 0711-317 ERROR: Undefined symbol: .mysql_num_fields
ld: 0711-317 ERROR: Undefined symbol: .mysql_real_escape_string
ld: 0711-317 ERROR: Undefined symbol: .mysql_escape_string
ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
collect2: ld returned 8 exit status
make: 1254-004 The error code from the last command is 1.


Ik heb zelf het hele internet afgezocht wat het eventueel zou kunnen zijn. Maar ik kom er niet achter.
En ik weet dat de linker niet doet wat het moet doen maar ik weet niet wat het veroorzaakt.

Kan iemand mij de juiste richting opduwen?

Acties:
  • 0 Henk 'm!

  • Erwin1967
  • Registratie: Oktober 2002
  • Laatst online: 11-09 14:54
De oorzaak is waarschijnlijk dat een module niet goed is gecompileerd bv als C ipv C++ waardoor de linker bepaalde definities niet kan vinden. Ik zou de zaak opnieuw compileren en kijken of er ergens geen warnings langskomen.
Controleer of ook alle libraries aanwezig zijn op de plekken die je meegeeft in het commando.

[ Voor 17% gewijzigd door Erwin1967 op 18-03-2010 22:00 ]


Acties:
  • 0 Henk 'm!

  • riddles
  • Registratie: April 2000
  • Laatst online: 26-05 15:33
Zoals duidelijk uit de foutmelding kunnen een fors aantal symbols tijdens het linken niet gevonden worden. Deze lijken met uit libmysqlclient te komen. Op de commandline wordt wel -lmysqlclient meegegeven, maar deze wordt niet gevonden. Dus, op zoek naar deze library en kijken waarom hij niet meegelinkt wordt tijdens de compile.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Even een update:

Ik moest duidelijk libmysqlclient installeren alleen kon ik niet de precompileerde versie van deze bibliotheek nemen van MySQL site.

Wat ik heb gedaan is de broncode genomen en deze compileren. En daarna weer Postfix proberen te compileren.

Echter blijkt wel dat je wel met de "-pthread" optie moet meegeven anders zal het compileerproces ook mislukken.

Het uiteindelijke make commando moet er dan als volgt zo uit zien:

 make -f Makefile.init makefiles 'CCARGS=-DHAS_MYSQL -I/usr/local/mysql/include' 'AUXLIBS=-L/usr/local/mysql/lib -pthread  -lmysqlclient -lz -lm' CC="gcc"