Anzeige:
Ergebnis 1 bis 7 von 7

Thema: LIBRARY herrausfinden

  1. #1
    Registrierter Benutzer Avatar von central
    Registriert seit
    10.03.2006
    Ort
    Norderstedt
    Beiträge
    8

    LIBRARY herrausfinden

    Guten Morgen,
    ich möchte bzw muss aus einem Verzeichniss die Abängikeiten von ausführbaren Dateien herausfinden.
    So in der Art wie es ldd macht.
    Nur habe ich leider überhaubt keine Ahnung wie ich das bewerkstelligen soll.
    Über eine Tip wo ich ansetzen könnte würde ich mich freuen.

    gruß

    central
    debian etch
    qt 3,3,5

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Der Titel des Beitrags sagt du willst Libraries herausfinden, der Text sagt etwas über Executables.

    Vielleicht kannst du ein Beispiel angeben?

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer Avatar von central
    Registriert seit
    10.03.2006
    Ort
    Norderstedt
    Beiträge
    8
    Ok ich versuche das mal genauer zu erklären .
    Mein Anliegen ist ein eine initrd zu erstellen.
    Wenn ich nun die '/bin/sh' zu meiner initrd kopiere brauch ich natürlcih auch die librarys von denn sie abhängt.
    was ldd ja auch shön zeigt.
    Code:
    ldd /bin/sh
    libncurses.so.5 => /usr/lib64/libncurses.so.5 (0x00002b6b8322b000)
            libdl.so.2 => /lib/libdl.so.2 (0x00002b6b83387000)
            libc.so.6 => /lib/libc.so.6 (0x00002b6b8348b000)
            /lib64/ld-linux-x86-64.so.2 (0x00002b6b83113000)
    Davon brauche ich nur den Pfad inkl library um sie dann in meine initrd zu kopieren.

    Ich hatte es erst mit mit execl versucht da ich execlp nicht verwenden möchte bzw kann da das programm root rechte benötigt.
    Das sah dann so aus
    Code:
    std::string meinbefehl = "/usr/sbin/ldd  /bin/sh >> tempfile";
    execl( execl("/bin/sh", "sh","-c", meinbefehl.c_str() ,NULL);
    klappte natürlich nicht da cat nicht gefunden wird

    Nun meine Frage gibt es eine Funktion die mir Abhängkeiten anzeigen kann ?

    Oder wie könnte ich das sonst bewerkstelligen ?

    gruß

    central
    Geändert von central (04-07-2006 um 15:35 Uhr)
    debian etch
    qt 3,3,5

  4. #4
    Registrierter Benutzer
    Registriert seit
    16.06.2003
    Beiträge
    73
    Hi,

    brauchst du das in einem selber geschriebenen Programm, oder langt dir auch ne Shell Lösung. Die könnte z.B. so aussehen (jetzt halt für den ls Befehl):

    Code:
    ldd /bin/ls | awk -F'=> ' '{print $2}' | sed 's/ (0x.*)//g' | grep -v '^$'
    Gruß

    almoeli

  5. #5
    Registrierter Benutzer Avatar von central
    Registriert seit
    10.03.2006
    Ort
    Norderstedt
    Beiträge
    8
    Dank dir almoeli,
    das ist genau das was ich erreichen möchte aber als c/c++ funktion .
    Alternativ könnte ich natürlich auch mein Programm als sh skript schreiben dann wäre es sicherlich schon fertig .
    Ich sehe mein Programm eher so als Übung für mich , und dann kann ich nicht einfach wenn es schwierig wird aufgeben

    Also wenn Jemand weiß wie man das machen kann , dann nur raus damit.

    gruß

    central
    debian etch
    qt 3,3,5

  6. #6
    Registrierter Benutzer
    Registriert seit
    25.10.2004
    Beiträge
    819
    Schau dir doch den Quellcode von ldd an.

  7. #7
    Registrierter Benutzer Avatar von central
    Registriert seit
    10.03.2006
    Ort
    Norderstedt
    Beiträge
    8
    Hallo Joghurt,
    das hab ich natürlich als erstes gemacht aber
    ldd ist ein bash skript.

    gruß

    central
    debian etch
    qt 3,3,5

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •