【小记录】arm64下的原子加

【小记录】arm64下的原子加,第1张

概述1.代码中使用atomic_add aarch64下面并没有任何关于atomic的头文件 编译出现错误: /Users/ahfu/code/android/android-ndk-r14b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ ....../..//thread_util.cpp:92:7: error: use of undecl 1.代码中使用atomic_add aarch64下面并没有任何关于atomic的头文件 编译出现错误:
/Users/ahfu/code/androID/androID-ndk-r14b/toolchains/llvm/prebuilt/darwin-x86_64/bin/clang++ ....../..//thread_util.cpp:92:7: error: use of undeclared IDentifIEr 'atomic_add'      atomic_add(&(obj->m_start_IDx),1);
2.怀疑是clang的问题,尝试换gcc编译

Application.mk 中加上一行:
NDK_TOolCHAIN := aarch64-linux-androID-4.9
编译出现:

/Users/ahfu/code/androID/androID-ndk-r14b/toolchains/aarch64-linux-androID-4.9/prebuilt/darwin-x86_64/bin/aarch64-linux-androID-g++  ...../..//thread_util.cpp:92:40: error: 'atomic_add' was not declared in this scope       atomic_add(&(obj->m_start_IDx),1);
3. 最后想起来,atomic变成了gcc内置指令了

于是把 atomic_add更换为 __sync_fetch_and_add(&(obj->m_start_IDx),1); 问题解决。

总结

以上是内存溢出为你收集整理的【小记录】arm64下的原子加全部内容,希望文章能够帮你解决【小记录】arm64下的原子加所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/1022907.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存