gcc- linkovani, divna chyba
Krata
krata na matfyz.cz
Neděle Srpen 4 17:19:27 CEST 2002
> Zdravim,
> kdyz se pokousim slinkovat svuj projekt dostanu zvlastni chybu
>
> pustim takovyto prikaz (to uvadim jen pro uplnost)
> gcc -I/afs/ms.mff.cuni.cz/home/kratj9cm/BIG/SDL/include
> -I/afs/ms.mff.cuni.cz/home/kratj9cm/BIG/SDL/include/SDL -D_REENTRANT
> -I/afs/ms/uk/kratj9cm/BIG/local/include -I. -o beast main.o
> ./math/libbeast_math.a ./object/libbeast_object.a ./misc/libbeast_misc.a
> ./projection/libbeast_projection.a ./system/libbeast_system.a
> ./misc/libbeast_misc.a ./parser/libbeast_parser.a
> ./materials/libbeast_materials.a ./scenes/libbeast_scenes.a
> -L/afs/ms.mff.cuni.cz/home/kratj9cm/BIG/SDL/lib
> -Wl,-rpath,/afs/ms.mff.cuni.cz/home/kratj9cm/BIG/SDL/lib -lSDL -lpthread
> -L/afs/ms/uk/kratj9cm/BIG/local/lib -l3ds -lGL -lGLU -lSDL_image -lm
>
> a jedna z chyb (konkretne ta prvni ostatni jsou velmi podobne) je tato
>
> ./parser/libbeast_parser.a(parser_3ds.o): In function
> `parser::parser_3ds::load_into_scene_materials(scenes::scene *)':
> /afs/ms.mff.cuni.cz/uk/kratj9cm/BIG/projects/l33t/beast/parser/parser_3ds.cpp:94:
> undefined reference to `misc::name::set_name(char const *)'
>
> kdyz ovsem pustim nm ./misc/libbeast_misc.a (jeden z .a ktere pridavam
> gcc) tak vypise mimo jine toto
> name.o:
> 0000004c T _._Q24misc4name
> 00000000 ? __FRAME_BEGIN__
> 00000000 T __Q24misc4name
> 00000010 T __Q24misc4namePCc
> U __builtin_delete
> U __builtin_vec_delete
> U __builtin_vec_new
> 00000080 T get_name__Q24misc4name
> 0000008c T set_name__Q24misc4namePCc
>
> tedy funkce set_name tam je (v namespace misc a ve tride name). Ve
> zdrojacich se zda byt vse v poradku.
> Problem mi vznikl kdyz jsem se pokusil z projektu vysekat libtool (kdyz
> jsem kompiloval pomoci libtoolu tak na stejnych zdrojacich vse fungovalo)
>
> Nevite nekdo kde by mohl byt problem?
> Diky moc Krata
>
tak na radu pana Horaka jsem se pokusil zamichat s poradim *.a a nakonec
jsem to nejak doporadku dal. Jen si nedovedu predstavit co se stane kdyz
se mi nekde objevi zavislost "tamAzpet". To uz pak prohazovani poradi asi
nepomuze....
Nicmene nevite nekdo proc kdyz linkuji
gcc main.o neco.a neco2.a ..... tak evidentne zalezi na poradi zatimco
kdyz dam
gcc main.o neco.o neco2.o neco3.o neco4.o ... na poradi nezalezi? (je to
pravda?)
Krata
Další informace o konferenci Linux