由于 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、编译器和链接器生成这些符号注释?