Page 1 of 1

C-Script (cgi) - lässt sich auf 64bit maschine nicht mehr compilieren

Posted: 2006-09-06 17:20
by kolibri
Hallo zusammen..

ich habe auf einem 32 bit-system ein script kompiliert, es läuft bereits seit einem jahr fehlerfrei.. bei portierung auf einen opteron-server wird nun ein compilerlauf mit folgenden ausgaben quittiert:
text2.c: In function âmainâ:
text2.c:52: warning: incompatible implicit declaration of built-in function âstrlenâ
/usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_compress_alloc':
: undefined reference to `compress'
/usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress':
: undefined reference to `uncompress'
/usr/lib/mysql/libmysqlclient.a(libtaocrypt_la-dh.o): In function `TaoCrypt::(anonymous namespace)::DiscreteLogWorkFactor(unsigned int)':
: undefined reference to `pow'
/usr/lib/mysql/libmysqlclient.a(libtaocrypt_la-dh.o): In function `TaoCrypt::(anonymous namespace)::DiscreteLogWorkFactor(unsigned int)':
: undefined reference to `log'
/usr/lib/mysql/libmysqlclient.a(libtaocrypt_la-dh.o): In function `TaoCrypt::(anonymous namespace)::DiscreteLogWorkFactor(unsigned int)':
: undefined reference to `pow'
collect2: ld returned 1 exit status

folgende header sind im programm:
#include <mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <strings.h>
compiliert wird das ganze mit GCC 4.0.2 und folgender befehlszeile:
gcc -o text2.cgi text2.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
kann mir jemand sagen, was ich falsch mache??? :(
bin leider nicht ganz so firm in sachen C

grüssles
kolibri

Re: C-Script (cgi) - lässt sich auf 64bit maschine nicht mehr compilieren

Posted: 2006-09-06 21:02
by spasswolf
Da muss wohl noch 'ne lib verlinkt werden, probier mal die mathlib aus:

Code: Select all

gcc -o text2.cgi text2.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient -lm
PS. Heisst der String-Header nicht string.h?

Re: C-Script (cgi) - lässt sich auf 64bit maschine nicht mehr compilieren

Posted: 2006-09-06 23:28
by kolibri
Spasswolf wrote:Da muss wohl noch 'ne lib verlinkt werden, probier mal die mathlib aus:

Code: Select all

gcc -o text2.cgi text2.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient -lm
PS. Heisst der String-Header nicht string.h?
danke!
die mathlib schien auch einfluss zu haben!
strings.h wurde auf dem alten system anstandslos compiliert, aber hier nicht mehr.. nach änderung ist nun einiges an fehlern raus... aber nun kommt folgendes....
/usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_compress_alloc':
: undefined reference to `compress'
/usr/lib/mysql/libmysqlclient.a(my_compress.o): In function `my_uncompress':
: undefined reference to `uncompress'
collect2: ld returned 1 exit status
was das nun wieder?? :( ich krieg noch die krise mit dem system..


grüssle
kolibri

Re: C-Script (cgi) - lässt sich auf 64bit maschine nicht mehr compilieren

Posted: 2006-09-06 23:37
by spasswolf
Ich glaube, da fehlt noch die zlib:

Code: Select all

-lz

Re: C-Script (cgi) - lässt sich auf 64bit maschine nicht mehr compilieren

Posted: 2006-09-06 23:54
by kolibri
Spasswolf wrote:Ich glaube, da fehlt noch die zlib:

Code: Select all

-lz
super!!
funktioniert.. mensch.. wo krieg ich solche informationen her? ich meine was fehlt und was nicht?? wie komme ich an diese compilerflags? stehe davor wie ein ochs vorm berg :((

grüssle