Pthread & linking
Milan Kopacka
mkop5230 na ss1000.ms.mff.cuni.cz
Pondělí Březen 22 21:11:21 CET 1999
On Mon, 22 Mar 1999 Radek_Sedmak na eurotel.cz wrote:
> mam takovou trapnou otazku mam nainstalovany linux RH5.2 a snazim se napsat
> program ktery pouziva pthreads. Kdyz kompiluju pomoci gcc muj zdrojak tak mi
> linker hlasi unresolved external na fci pthread_create coz je docela logicke,
> ale kdyz se pokusim zmenit make na cosi ve smyslu gcc source.c -o result
> -L/usr/lib -llibpthread.a tak mi to pro zmenu hlasi ze nemuze najit
> /usr/lib/libpthread.a ackoliv tam ta knihovna fyzicky existuje. Co delam spatne
> ??
V tomhle pripade staci -static -lpthread , lib a .a si prida "sam",
/usr/lib se standardne prohledava. A muzete se sdilenou knihovnou, tj. bez
-static ... Ale stejne Vam bude schazet - viz nasledujici.
> Aneb jak zlinkovat pod RH5.2 kod ktery pouziva pthread_create ......
Ve zdrojacich glibc jsou i zdrojaky linuxthreads a ty obsahuji priklad,
ktery obsahuje prikladove Makefile a v nem je uvedeno:
CFLAGS=-g -O -Wall -I.. -D_REENTRANT
Dulezita vec z toho je to -D_REENTRANT , to si pridejte na command line
kompilatoru. libc se musi pouzivat kvuli threadum reentrantne.
Takze
gcc -D_REENTRANT -o result source.c
> PS: Ackoliv jsem prolezal inet jak zbesilej nikde o linkovani pthread_ funkci
> pod linuxem. Byl jsem i na domovske strance Xaviera Leroye ale take nic :((((
> PS/2 Pokud se nemylim tak pthread_ fce by mely byt soucasti glibc2 a ta zase by
> standardne mela byt v RH5.2 ne ? pokud se mylim tak me opravte
PS/3 Dal to ke zdrojakum, to je snad dostatecne spravne misto na priklady
pouziti, vlastne.. na cokoliv.. :)
zdravi
Milan Kopacka
Další informace o konferenci Linux