Portál AbcLinuxu, 13. května 2025 18:33

Dotaz: Problem s kompilaci programu.

3.8.2004 19:58 Martin
Problem s kompilaci programu.
Přečteno: 152×
Odpovědět | Admin
Zdravim, mam tu jeden, pro nekoho mozna jednoduchy problem ,a to je , ze kompiluju jeden patch ,ketrej mi prida podporu MySQl do jednoho serveru, ale pri kompilaci to hlasi:
./compile db.c
db.c:4: mysql.h: No such file or directory
make: *** [db.o] Error 1
C vubec neumim, ale ten patch je jen jeden soubor, nasel sem tam:
#include <mysql.h>
Takze se ptam ,mam tam nejak upravit cestu k mysql.h a jak ? nebo co mam udelat s tim ,aby to fungovalo, THX.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

3.8.2004 20:01 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Odpovědět | | Sbalit | Link | Blokovat | Admin
A máš mysql.h? A kde? A má to configure, kterému lze dát option --with-mysql=někde? Pokud ne, nejspíš se má cesta nastavit přímo někde v Makefile a je to někde napsané (README, INSTALL, příp. přímo Makefile).
3.8.2004 20:25 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Mno prave zadne readme k tomu neni a configure to taky nema, jen ten soubor s tim patchem, a pak spoustim akorat make ,make setup check
ucspi-tcp
Pavel Stárek avatar 3.8.2004 21:11 Pavel Stárek | skóre: 44 | blog: Tady bloguju já :-) | Kolín
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Odpovědět | | Sbalit | Link | Blokovat | Admin
DD,

nevím co máš za distro ale ve fedoře musí být nainstalován balíček mysql-devel. Kompilace se pak provede příkazem:
gcc program.c -o program -L/usr/lib/mysql -I/usr/include/mysql
Pavel
Kdo chce, hledá způsob; kdo nechce, hledá důvod.
3.8.2004 22:03 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Nemusí být nainstalován ... ale lze ho nainstalovat ;-) Nicméně Martin ho snad má.

K věci. Podle náznaků předpokládám, že kompiluješ DJB ucspi-tcp s ucspi-tcp-0.88-mysql.patch. Je zapotřebí změnit cesty v conf-cc a conf-ld z /usr/local na /usr, protože patch předpokládá MySQL nainstalované do /usr/local.
3.8.2004 22:23 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Tak to bude asi dalsi problem, protoze ja MySQL mam nainstalovane v /usr/local/mysql.
Jinak moc nerozumim obsahu tech souboru, skoro nic tam neni,jen tohle:
gcc -O2
This will be used to compile .c files.
Jak to mam zeditovat? (vubec nevim jak a kam bych to mel napsat ;-))
3.8.2004 22:26 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Jezis, omlouvam se, ja jeste neaplikoval ten patch, proto tam jeste nebyla ta cesta, tet je tam /usr/loca/include/mysql, tak to zkusim upravit ;-) snad to pude Jinak zatim dik za pomoc.
3.8.2004 22:33 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
No tet mam v conf-cc tohle:

gcc -O2 -I/usr/local/include/mysql

zkousel sem to zmenit na /usr, /usr/local, /usr/local/mysql a porad nic, porad mysql.h not found, v druhym souboru mam:

gcc -s -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient

ale tady nevim presne co mam zmenit. Budu vdecnej za pomoc ;-)
3.8.2004 22:47 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Za -I prostě musí být adresář, ve kterém se nachází mysql.h. Stejně tak za -L adresář, kde se nachází libmysqlclient.so.
3.8.2004 23:19 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Super,uz to de, dik moc, ale pro zmenu to ma zas nejakej jinej problem, uz me to docela nebavi ;-). Tet to pise:
./load tcpserver rules.o db.o remoteinfo.o timeoutconn.o cdb.a \
dns.a time.a unix.a byte.a  `cat socket.lib`
db.o: In function `open_db':
db.o(.text+0x14): undefined reference to `mysql_close'
db.o(.text+0x2b): undefined reference to `mysql_init'
db.o(.text+0x5a): undefined reference to `mysql_real_connect'
db.o(.text+0x7d): undefined reference to `mysql_error'
db.o: In function `check_db':
db.o(.text+0xdd): undefined reference to `mysql_query'
db.o(.text+0xed): undefined reference to `mysql_store_result'
db.o(.text+0x100): undefined reference to `mysql_affected_rows'
db.o(.text+0x10f): undefined reference to `mysql_free_result'
db.o(.text+0x126): undefined reference to `mysql_error'
db.o(.text+0x17e): undefined reference to `mysql_query'
db.o: In function `db_close':
db.o(.text+0x1e4): undefined reference to `mysql_close'
db.o: In function `db_ping':
db.o(.text+0x228): undefined reference to `mysql_ping'
collect2: ld returned 1 exit status
make: *** [tcpserver] Error 1

vazne nevim, proc jenom asi ja mam porad nejake problemy.
4.8.2004 00:14 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Nelinkuje se to s libmysqlclient. Proč, to teď nevidím, protože -lmysqlclietn tam zjevně máš.
4.8.2004 10:02 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Nemuze tam bejt jeste nejakej jinej problem? nema se tam treba nekde neco nastavit ? ja sem s tim nic jinyho nedelal.
4.8.2004 10:12 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Jeste sem koukam ze v /mysql/lib nemam libmisqlclient.so, ale jenom .a, jenomze kdyz chci mit .so ,tak musim nainstalovat ten dev balicek ne ? nebo to jde udelat nejak jinak ? ja totiz mysql nemam nainstalovane z balicku a kdyz to budu kombinovat jako balicek a kompilace, tak to asi nepobezi nejlepe ne ?
takze problem bude nejspise b libmysqlclients.so, otazka je , jak to tam mam dostat.
treba mi je divny, kde ten program bere , pod koho se ma pripojit do mysql, ale asi z toho configuraku ~vpopmail/etc/vpopmail.mysql ne ?
4.8.2004 10:22 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Hm, tak zkus celé -L/usr/local/lib/mysql -lmysqlclient nahradit /usr/local/lib/mysql/mysqlclient.a a slinkuje se to staticky.
4.8.2004 11:22 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
conf-ld:
gcc -s  -I/usr/local/mysql/include -
L/usr/local/mysql/lib/libmysqlclient.a

db.o: In function `open_db':
db.o(.text+0x14): undefined reference to `mysql_close'
db.o(.text+0x2b): undefined reference to `mysql_init'
db.o(.text+0x5a): undefined reference to `mysql_real_connect'
db.o(.text+0x7d): undefined reference to `mysql_error'
db.o: In function `check_db':
db.o(.text+0xdd): undefined reference to `mysql_query'
db.o(.text+0xed): undefined reference to `mysql_store_result'
db.o(.text+0x100): undefined reference to `mysql_affected_rows'
db.o(.text+0x10f): undefined reference to `mysql_free_result'
db.o(.text+0x126): undefined reference to `mysql_error'
db.o(.text+0x17e): undefined reference to `mysql_query'
db.o: In function `db_close':
db.o(.text+0x1e4): undefined reference to `mysql_close'
db.o: In function `db_ping':
db.o(.text+0x228): undefined reference to `mysql_ping'
collect2: ld returned 1 exit status
make: *** [tcpserver] Error 1

Nemam zkusit tam nejak dostat ten .so ? ale nerad bych si rozhodil cely mysql.
Ja sem proste asi smolar.
4.8.2004 11:36 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Když celé, tak celé ;-) Tj. žádné -L, prostě jen to libmysqlclient.a.

Druhá věc je, jestli se to použije, protože v svérázných DJB systémech, aby se prase vyznalo.
4.8.2004 11:44 Make
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
gcc -s -I/usr/local/mysql/lib/libmysqlclient.a

Tak zase uplne to samy
db.o: In function `open_db':
db.o(.text+0x14): undefined reference to `mysql_close'
db.o(.text+0x2b): undefined reference to `mysql_init'
atd.

mno nevim nevim asi to nikdy nerozchodim.
4.8.2004 12:04 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Proč je tam teď zase -I?
4.8.2004 15:21 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
No tet zas nevim proc, ale nejde mi aplikovat ten patch, zadaval sem vzdy jen cestu k patchi: patch /cesra/k/patchi, ale to tet zas pro zmenu nejde, takze se uz asi nehnu, mozna bude jednodusi zkusit smtp auth, ale zas ten relay pres mysql se mi libi ,kdyz uz tam je vsechno, uz nevim, co si mam pocit.
4.8.2004 15:47 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Mno, na FC2 s distribučním MySQL:
patch <ucspi-tcp-0.88-mysql.patch
vi conf-cc    # odstranění /local, což ty nemusíš
vi conf-ld    # odstranění /local, což ty nemusíš
vi error.h    # změna extern int errno; na #include <errno.h>
make
A normálně to projde. Takže už fakt nevím, co děláš.
4.8.2004 23:56 Martin
Rozbalit Rozbalit vše Re: Problem s kompilaci programu.
Dobry, uz se to povedlo, dik za pomoc, ale jeste tu je nejakej problem, protoze sem myslel ze tenhle patch bude rikat smtpd, aby vybiral klienty pro relay z tabulky relay u vpopmailu, jenomze porad, kdyz chci odeslat postu ,tak to hlasi:

533 sorry, that domain isnt in my list of allowed rcpthosts

, coz me docela stve, protoze sem myslel, ze to ten patch vyresi. Nebo se musi jeste udelat neco jinyho ?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.