如何在 Fedora 中的 so 檔案中建立符號版本控制函數?

如何在 Fedora 中的 so 檔案中建立符號版本控制函數?

由於 Fedora 中存在以下錯誤:

http://forums.fedoraforum.org/showthread.php?t=296524

我決定編譯我自己的 zlib 和 libpng 版本。但這樣做之後,我意識到 libcairo 無法連結到我的新 libpng 版本。經過調查發現,原因是系統libpng中的符號包含符號版本,例如:

readelf -Ws /usr/lib/libpng16.so.16.6.0  | awk '{print $8}' | grep -i version
png_access_version_number@@PNG16_0
png_get_header_version@@PNG16_0

但在我編譯的版本中,符號確實包含版本裝飾:

> readelf -Ws /usr/local/lib/libpng16.so.16.6.0   | awk '{print $8}' | grep -i version
png_get_header_version
png_user_version_check
png_access_version_number

如何讓cmake、編譯器和連結器產生這些符號註解?

相關內容