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