未定义__sync_val_compare_and_swap@Linux gcc
参考:https://blog.csdn.net/jcwKyl/article/details/6079421?utm_source=blogxgwz0#commentBox
centos 5.5 32位平台编译遇到未定义__sync_val_compare_and_swap_4错误。
1.检查gcc版本是4.1.2,可以支持原子操作,古老的32位平台,不方便升级到4.4或以上版本;
2.参考博文https://blog.csdn.net/jcwKyl/article/details/6079421?utm_source=blogxgwz0#commentBox,加上-march=i486编译选项,解决__sync_val_compare_and_swap_4错误,但继续报出__sync_val_compare_and_swap_8错误,将编译选项改为-march=i686,问题解决。
3.实验发现-march=i586就能解决问题,因为486不是64位的吗?就不支持64位原子操作?
参考:https://blog.csdn.net/jcwKyl/article/details/6079421?utm_source=blogxgwz0#commentBox