Posted By: medvidek (Zase za polarnim kruhem) on 'CZprogram' Title: Re: Co zas delam blbe? (linux, gcc a linkovani) Date: Fri Dec 14 18:04:22 2001 toz si odpovim sam :) > g++ -xc++ -I../../include -c -o nthread.o nthread.cpp > g++ -xc++ -c -o myfn.o myfn.cpp > rm mylib.a > ar -q mylib.a nthread.o myfn.o > g++ -xc++ -I../../include -c -o main.o main.cpp > g++ -s -lpthread mylib.a main.o > Co delam blbe? Asi je to nejaka trivialita. Diky reseni je zmenit posledni radek na: g++ -s main.o mylib.a -lpthread cili prehazet poradi. Je to dano tim, ze (trochu zjednodusene) linker bere soubory zleva doprava, nerezolvovane reference prida na seznam nerezolvovanych referenci a pomoci symbolu definovanych v danem modulu rezolvuje prislusne reference ze seznamu a pak symboly definovane v tomto modulu zapomene. Takze to nefungovalo proto, ze prvni likoval pthread, tim nerezolvoval zadne reference, pak mylib.a, tim taky ne a pak main.o. kde najednou byly nerezolvovane symboly. V opravene verzi nahaze nezname symboly z main.o do seznamu, nektere najde v mylib.a a zbytek v pthread. medvidek -- ELVIRA - Extended LSD VoiceXML interpreter for Applications http://www.fi.muni.cz/lsd/elvira Engine for building dialog applications Free for noncommercial use