dalsi problem s kompilovanim kniznic

Sekcia: Programovanie 11.09.2006 | 15:12
Avatar Frantisek Klabzuba Debian  Používateľ
Ahoj. Ten prvy problem uz som vyriesil, objavil sa ale dalsi. Tento konkretne suvisi s "vnaranim" viacerych statickych kniznic. Balicek s prikladom najdete tu: http://senzory.ahoj.sk/problem_c_vs_cpp_2.tgz Mam dve staticke kniznice: greetings - staticka kniznica (libgreetings.a) v C, ma funkcie say_hello a say_bye objwrapper - dalsia staticka kniznica, akoze objektovy wrapper na kniznicu greetings, ma funkciu obj_hello_bye ktora vola say_hello a say_bye Problem spociva v tom, ze ked chcem v C++ zdrojaku pouzit tu objwrapper tak sice "vidi" pri kompilacii libobjwrapper a jeho metodu obj_hello_bye ale nevidi say_hello a say_bye ktore su v greetings. Kompilujem to takto (cize zahrnam aj greetings): g++ test.cc -o test -L./lib -I./include -lgreetings -lobjwrapper v ./lib su obe kniznice (libgreetings.a, libwrapper.a) v ./include su vsetky hlavickove subory Neviete v com by mohol byt problem? dvh
    • Re: dalsi problem s kompilovanim kniznic 09.09.2006 | 00:16
      Avatar milossramek kubuntu, debian  Používateľ
      Problem je v tom, ze takto sa to nerobi. Na preklad co len trosku zlozitejsich programov sa pouziva make, pricom pravidla, ako sa preklada, sa pisu do suboru Makefile. Odporucam Ti, aby si si o tom volaco precital, oplati sa. Opytaj sa googlu, kred nejakym casom bol tutorial v PCREVUE (oto kominak) Na http://www.viskom.oeaw.ac.at/~milos/wrapper.tgz najdes Tvoj kod aj s Makefile. Dalsia vec je, ze do #include sa nedavaju absolutne cesty. Vymazal som ich. Po rozbaleni chod do katalogu wrapper a tam spusti prikaz 'make', potom ./test clean spravis 'make clean' cele to zbali 'make pack' Jednotlive Makefily mozes modifikovat aj tak, aby hh isli do iunclude a kniznice do lib zdravim m
      • Re: Re: dalsi problem s kompilovanim kniznic 09.09.2006 | 01:46
        Avatar Frantisek Klabzuba Debian  Používateľ
        Vdaka podarilo to, tvoje riesenie funguje a podarilo sa mi vdaka tomu prist na to preco moje riesenie nefungovalo. Moje riesenie je tu: http://senzory.ahoj.sk/riesenie_problemu2.tgz, este raz vdaka. No a teraz v com bol problem. Toto nefungovalo: g++ test.cc -Ilib -Linclude -lgreetings -lobjwrapper Ale toto funguje: g++ test.cc -Ilib -Linclude -lobjwrapper -lgreetings Cize len trebalo prehodit poradie kniznic. ---- No a teraz trochu filozofie. 1. Tie priklady som pisal preto, aby som pochopil ako ne/funguje kompilacia pri viacerych knizniciach. Pouzit program (makefile) ktory to urobi za mna je pekne a pohodlne ale ak raz nastane problem, makefile mi nepomoze pokial nebudem vediet a chapat co a ako chce alebo sa snazi urobit. Preto je podla mna dolezite pochopit podstatu tohoto problemu, az potom je mozne pouzivat automaticke nastroje (zakaznik: v com bol problem? mi: nevieme, pouzili sme xyz a pomohlo to - nie velmi profesionalne). 2. Nie kazdy pouziva make. Alebo moze nastat pripad (priznvam ze toto je prave on) ze ta C-ckovska kniznica je Janova, ja pisem jej objektovy wraper pre Fera a on nema rad alebo nepouziva make (napr. na jeho OS nieje portovany). Nemozem ho predsa nutit aby ho pouzival. 3. Som asi geek, proste chcem vediet ako veci funguju tak sa vo vsetkom sprtam. Este raz vdaka. A ten manual o makefile si asi pozriem, idem sa totiz pohrat s vyrobou zdielanych kniznic, uz sa tesim na tie hello worldy :) Inu, pre niekoho je dolezity ciel, niekomu staci samotna cesta. dvh
        • Re: Re: Re: dalsi problem s kompilovanim kniznic 09.09.2006 | 10:36
          Avatar uid0 Debian  Používateľ
          makefile sa velmi zide, ked mas v projekte viacero zdrojakov a nie len 1 (a pokial to nie je nic male, tak to aj ma byt). ale takmer ma trafilo, ked som videl tie tvoje kompilacne skripty. BTW, make je snad vsade :)
          Debian. apt-get into it…
        • Re: Re: Re: dalsi problem s kompilovanim kniznic 11.09.2006 | 15:12
          Avatar milossramek kubuntu, debian  Používateľ
          Nie kazdy pouziva make: Videl som uz dost projektov (teda, C/C++, neviem, ako je to inde), a kazdy make pouzival. Asi nejaky dovod na to bude. Este aj tie Visual-borland volaco nie su nic ine len klikaci frontend k make. m