2009-12-01 85 views
2

我發現這個使用strace的:爲什麼不尊重'-rpath-link'選項?

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) 

我很困惑;根據手冊ld首先必須嘗試找到-rpath-link的路徑。

回答

3

-rpath-link僅記錄(在ld(1)手冊頁中)以影響依賴於其他共享庫的共享庫。由於您正在鏈接一個可執行文件,無論是它被忽略還是被視爲另一個-rpath。或者,也許這意味着-rpath-link路徑只用於遞歸依賴關係,但是在鏈接可執行文件時設置它。

無論如何,我認爲它沒有被使用,因爲你沒有一個庫依賴於另一個庫。

+0

最有可能您是對的 – 2009-12-10 09:08:53

相關問題