Outo ongelma debuggauksessa



  • Jostain syystä en pysty debuggaamaan ohjelmaa (sama ohjelma, josta oli kyse aikaisemmin). Debuggaus on tarpeen, koska pitäisi selvitellä miten ohjelma etenee tiettyä toimintaa käytettäessä. Jos yritän käynnistää debuggauksen tulee virheilmoitus "error while loading shared libraries: libqwt.so.6: cannot open shared object file: No such file or directory". Ohjelmaa ei myöskään saa käynnistettyä suoraan GUI:sta ikonia klikkaamalla (ei tapahdu mitään), mutta shellistä sen saa käynnistettyä ilman ongelmia.

    qwt on asennettu /usr/local/qwt-6.1.3:n alle ja kirjastopolku on mukana LD_LIBRARY_PATH-muuttujassa, joten siitä ei pitäisi olla kiinni. Tosin ehkä Qt käyttää omia polkumäärittelyitään kirjastoille ?

    Erikoista on myös se, että kun kokeilin tutkia kirjastojen riippuvuuksia ldd:llä libicui18n valittaa, ettei libicuuc:tä ja libicudata:a löydy (versio 56). Molemmat ovat Qt:n kirjastohakemistossa. Samaten jos ldd:llä katsoo libiceuc:n riippuvuuksia se valittaa samaan tapaan libicudata:sta.


  • administrators

    Onko qwt varmasti käännetty debug versioksi?
    https://stackoverflow.com/questions/36803980/how-to-build-qwt-library-in-debug-mode-under-linux

    Polut voivat myös olla syyllisiä, mutta debuggaaminen Qt Creatorin sisältä pitäisi toimia suoraan, jos build tavallinen muuten onnistuu.



  • @tekojo Sain debuggauksen toimimaan kun kopioin qwt-kirjaston buildihakemistoon. Eli ongelma oli polkumäärittelyssä. Jostain syystä Qt Creator ei osannut etsiä qwt-kirjastoa oletuspolusta.

    Sain myös selvitettyä miksei ohjelman käynnistys GUI:sta toimi. Kun kokeilin ajaa ohjelaa niin, että valitsin oikealla hiiren napilla valikosta "aja terminaalissa" tuli valitus siitä, että se ei löydä jotain kirjastoa. (IUC-kirjasto). Vaikka kyseinen polku oli mukana LD_LIBRARY_PATH-muuttujassa.

    Huomasin sitten aika oudon ilmiön: kun avasin uuden terminaali-ikkunan ja annoin komennon echo $LD_LIBRARY_PATH tuloksena oli tyhjää vaikka aiemmassa terminaalissa se antoi oikean arvon. Jos exporttasi oikean polun echo antoi taas odotetun arvon, mutta uuden ikkunan avaaminen antoi taas tyhjää, vaikka exportin pitäisi käsittääkseni tehdä määrittelystä globaali. Jostain syystä kirjastopolku pykii ja sen takia normaali käynnistys ei toimi.


  • administrators

    @TheRealJ hyvä kun selvisi.
    Erikoiselta kuulostaa. Periaatteessa Creator etsii määritellyt polut, eli jos buildille on määritelty polut, ne pitäisi aina löytyä.

    Terminaalille nuo exportit pitää tosiaan tehdä erikseen käyttöjärjestelmän oman tavan mukaan. Tai sitten release skripteillä määritellä asennuspakettiin kaikki paikoilleen. Se ei tosin debug vaiheessa ole järkevää ajankäyttöä.



  • @tekojo Löytyi tuohonkin ratkaisu. Piti lisätä /etc/ld.so.conf.d:n alle määrittelyt qwt:n ja Qt Creatorin kirjastopoluille. Nyt lähtee ohjelma käyntiin GUI:sta ilman mukinoita.

    Aina oppii Linuxin käytöstäkin jotain uutta.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.