2010-11-01 63 views
4

,如果我不喜歡這個如何連接找到共享庫沒有SONAME

gcc -shared libfoo.o -o libfoo.so 

,並連接它, 如何鏈接找到我的共享庫SONAME創建一個共享庫?

文件名libfoo.so被鏈接器視爲默認SONAME嗎?

回答

7

我認爲你是對的。這裏ld的手冊頁說:

-soname =名稱

當創建ELF共享對象,內部DT_SONAME字段設置爲指定的名稱。當可執行文件與具有DT_SONAME字段的共享對象鏈接時,那麼當可執行文件運行時,動態鏈接程序將嘗試加載由DT_SONAME字段指定的共享對象 ,而不是使用賦予鏈接程序的文件名。