Frage

ich erkennen, dies mit strace:

8480  execve("/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/bin/ld", 
[   "/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../../i486-slackware-linux/bin/ld", 
    ...
    "-L/home/bjack/lib", 
    ...
    "-rpath-link", "/root/src/firmware/Bj-bg/ab-BJ-gameprom-modules/src/dispatcher/logic", 
    ...
    "-lgame_std", "-lygor", "-ldl", 
    "--rpath", "/home/bjack/lib", 
    "-lgcc", "--as-needed", "-lgcc_s", "--no-as-needed", "-lc", "-lgcc", "--as-needed", "-lgcc_s", "--no-as-needed", 
    "/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/crtend.o", 
    "/usr/lib/gcc-lib/i486-slackware-linux/3.3.4/../../../crtn.o"
], [/* 26 vars */]) = 0

8480  open("/home/bjack/lib/libgame_std.so", O_RDONLY) = 12
8480  open("/home/bjack/lib/libygor.so", O_RDONLY) = -1 ENOENT (No such file or directory)
8480  open("/home/bjack/lib/libygor.a", O_RDONLY) = -1 ENOENT (No such file or directory)

Ich bin verwirrt; gemäß dem Handbuch ld zunächst müssen versuchen, auf -rpath-link Weg zu finden.

War es hilfreich?

Lösung

-rpath-link wird nur dokumentiert (in der ld (1) man-Seite) geteilt Libs zu beeinflussen, die auf anderen geteilt Libs abhängen. Da Sie eine ausführbare Datei sind die Verknüpfung, entweder es wird ignoriert oder es nur wie ein -rpath behandelt wird. Vielleicht bedeutet es, dass der -rpath-Link-Pfad nur für rekursive Abhängigkeiten verwendet wird, aber Sie sie festgelegt, wenn die ausführbare Datei verknüpft.

Wie auch immer, ich denke, es ist nicht, weil Sie eine Bibliothek nicht auf einem anderen abhängig haben verwendet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top