gabaman

Hozzászólások

10 bejegyzés megtekintése - 541-550 / 2,173
  • Szerző
    Bejegyzés
  • Hozzászólás: GCC linkelés, nem találhato .so #2117436
    gabaman
    Felhasználó

      Összegezve, beírtad az ld.so.conf-ba egy üres sorba az /usr/local/lib sort, és az ldconfig lefutása után az ‘ldconfig -p’ nem találja meg a libet. Ez érdekes. Már az első válasz (uzsolt) tartalmazta az általánosan működő megoldást, és mégsem megy. Nincs más ötletem. Egyértelműen az ldconfig körül van a probléma.

      Hozzászólás: GCC linkelés, nem találhato .so #2117431
      gabaman
      Felhasználó

        Hmm, nem biztos, hogy a fordítással van a gond. Lehet akár Ubuntu feature is (pl. ha ki van kapcsolva az ld.so.cache frissítése). Az

        # ldconfig -p |grep libpurple

        megmondja, hogy az ldconfig látja-e a libet. Ha igen, már csak az a kérdés, hogy mikor frissült a gyorstár:

        $ ls -l /etc/ld.so.cache

        Hozzászólás: GCC linkelés, nem találhato .so #2117432
        gabaman
        Felhasználó

          Hmm, nem biztos, hogy a fordítással van a gond. Lehet akár Ubuntu feature is (pl. ha ki van kapcsolva az ld.so.cache frissítése). Az

          # ldconfig -p |grep libpurple

          megmondja, hogy az ldconfig látja-e a libet. Ha igen, már csak az a kérdés, hogy mikor frissült a gyorstár:

          $ ls -l /etc/ld.so.cache

          Hozzászólás: GCC linkelés, nem találhato .so #2117427
          gabaman
          Felhasználó

            Egy módon lokalizálni lehet hogy hol a hiba. Ha a

            $ LD_LIBRARY_PATH=/usr/local/lib ldd ./elaborate |grep purple

            oké, akkor a progi fordításánál van a gond. Ha nem okk, akkor meg az ldconfig-gal.

            Hozzászólás: GCC linkelés, nem találhato .so #2117428
            gabaman
            Felhasználó

              Egy módon lokalizálni lehet hogy hol a hiba. Ha a

              $ LD_LIBRARY_PATH=/usr/local/lib ldd ./elaborate |grep purple

              oké, akkor a progi fordításánál van a gond. Ha nem okk, akkor meg az ldconfig-gal.

              Hozzászólás: GCC linkelés, nem találhato .so #2117421
              gabaman
              Felhasználó

                „Normális ez így?”
                Igen.

                „Azt nem értem, hogy miért nem működik magától, mikor egy csomó másikprogramnak is az /usr/local-ban vannak a libjei, és azok futnak.”
                Egy osztott libet (.so) 4 módszerrel lehet használatba venni:
                1. dinamikus betöltésel, mint egy fájlt (dlopen, dlclose).
                2. Linkeléssel (ld segítségével):
                2a. alapértelmezett útvonal alapján
                2b. megadott útvonal alapján (LD_LIBRARY_PATH)
                2c. „előtöltéssel” (LD_PRELOAD)

                A mozilla pl. a 2b-t használja, és a firefox nevű fájl egy shell script, ami a firefox-bin fájl megfelelő paraméterezéssel meghívja. Tehát hiába furcsa, tejjesen jól van így.

                „Nem lehet hogy én rontottam el valamit?”
                Ez esetben nem, mert nem egy módszer használatos.

                „A forráskódban lehet olyan hibát véteni, ami ezt eredményezi?”
                Nem.

                „Ha az /etc/ld.so.conf-ba beírom, ugyanúgy nem működik. A másikat nem próbáltam, de szerintem ugyanaz a hatás.”
                Mi a kimenete ennek:
                $ ls -l /usr/lobal/lib/libpurple.*

                Kell lennie legalább 1 linknek, meg egy .la-nak.

                Hozzászólás: GCC linkelés, nem találhato .so #2117422
                gabaman
                Felhasználó

                  „Normális ez így?”
                  Igen.

                  „Azt nem értem, hogy miért nem működik magától, mikor egy csomó másikprogramnak is az /usr/local-ban vannak a libjei, és azok futnak.”
                  Egy osztott libet (.so) 4 módszerrel lehet használatba venni:
                  1. dinamikus betöltésel, mint egy fájlt (dlopen, dlclose).
                  2. Linkeléssel (ld segítségével):
                  2a. alapértelmezett útvonal alapján
                  2b. megadott útvonal alapján (LD_LIBRARY_PATH)
                  2c. „előtöltéssel” (LD_PRELOAD)

                  A mozilla pl. a 2b-t használja, és a firefox nevű fájl egy shell script, ami a firefox-bin fájl megfelelő paraméterezéssel meghívja. Tehát hiába furcsa, tejjesen jól van így.

                  „Nem lehet hogy én rontottam el valamit?”
                  Ez esetben nem, mert nem egy módszer használatos.

                  „A forráskódban lehet olyan hibát véteni, ami ezt eredményezi?”
                  Nem.

                  „Ha az /etc/ld.so.conf-ba beírom, ugyanúgy nem működik. A másikat nem próbáltam, de szerintem ugyanaz a hatás.”
                  Mi a kimenete ennek:
                  $ ls -l /usr/lobal/lib/libpurple.*

                  Kell lennie legalább 1 linknek, meg egy .la-nak.

                  Hozzászólás: GCC linkelés, nem találhato .so #2117409
                  gabaman
                  Felhasználó

                    „Persze lehet, hogy a „disztró-szabványos” megoldás a tied, de szvsz az enyém is működik, és az mindig működik.”
                    Hogy én is igazoljam önmagam 4.gif, a Linux egyik rettentően nagy hátránya a túl nagy szabadság. Így szabadon anyira átláthatatlanná lehet tenni a konfigolást (ez esetben nem számottevően zavaró), hogy utána egy hibakeresés többszörös idővel jár, mint ha csak egy stílus vagy irányzat alapján van a rendszer konfigolva. Láttam már ilyet sajnos.

                    Hozzászólás: GCC linkelés, nem találhato .so #2117410
                    gabaman
                    Felhasználó

                      „Persze lehet, hogy a „disztró-szabványos” megoldás a tied, de szvsz az enyém is működik, és az mindig működik.”
                      Hogy én is igazoljam önmagam 4.gif, a Linux egyik rettentően nagy hátránya a túl nagy szabadság. Így szabadon anyira átláthatatlanná lehet tenni a konfigolást (ez esetben nem számottevően zavaró), hogy utána egy hibakeresés többszörös idővel jár, mint ha csak egy stílus vagy irányzat alapján van a rendszer konfigolva. Láttam már ilyet sajnos.

                      Hozzászólás: GCC linkelés, nem találhato .so #2117407
                      gabaman
                      Felhasználó

                        Lehet, de szerintem rossz ötlet az öreg motoros (old school) dolgokat keverni az új hullámmal (new wave). 🙂
                        A fenti két módszer közül azt erősen ajánlott alkalmazni, ami a rendszer alapértelmezése.

                      10 bejegyzés megtekintése - 541-550 / 2,173