[英]How to know the visibility of a symbol in an object file
符號的可見性(來自 __ 屬性 __(visibility("...")) 和 -fvisibility)可以從 so 文件中得知
nm -C lib.so
t 是隱藏的,T 是導出的(即默認值)。 但是如何直接從目標文件中獲取這些信息呢?
nm -C lib.o
無論可見性如何,都將始終為非 C 靜態符號打印 T。
可見性不同於符號是局部的還是全局的(這是小寫/大寫字母所描述的)。 隱藏符號仍然可以具有外部鏈接,即它不限於翻譯單元。
我認為nm
沒有顯示可見性的選項,但您可以使用
objdump -Ct lib.o
如果符號是隱藏的,它將顯示屬性.hidden
或
readelf -s lib.o
其中有一列可見性( DEFAULT
/ HIDDEN
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.