由於 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、編譯器和連結器產生這些符號註解?