2
我正在查看Linux中共享庫的'nm'命令的輸出。我看到這nm命令的輸出中'@@'符號的含義是什麼?
U [email protected]@GLIBC_2.0
這是否意味着stderr是硬鏈接glibc2.0?我問這個問題的原因是,我們有一組庫(比如a1.so,a2.so,...),這些庫是針對我們導出的庫的不同版本之一構建的(比如說ex.so.1, ex.so.2)。導出的庫都會導出一個函數,比如foo。當加載a * .so庫時,它們以某種方式神奇地將相應的函數修補到它們所針對的庫中。我看到下面的不同庫的nm輸出。
nm a1.so | grep foo
U [email protected]@ex.1
nm a2.so | grep foo
U [email protected]@ex.2
'@@'在這裏扮演什麼角色?我找不到有關'@@'的任何文檔。任何參考將有所幫助。
這是符號版本。像glibc這樣的庫可能包含同一個符號的多個版本。 –
Ulrich Drepper撰寫的[this]第3部分(https://www.akkadia.org/drepper/dsohowto.pdf)論文更詳細地介紹。 –
謝謝@n.m。和Brett Hale。我將通讀論文。 –