error: ‘__ATOMIC_RELAXED’ undeclared (first use in this function)
error: ‘__ATOMIC_ACQUIRE’ undeclared (first use in this function)
error: ‘__ATOMIC_RELAXED’ undeclared (first use in this function)
error: ‘__ATOMIC_ACQUIRE’ undeclared (first use in this function)
分析解决
头文件的问题
根据过去的经验,未声明的符号这个错误很大概率是头文件的问题。首先需要确定的是编译的源码中是否有相关的符号声明。
使用上述符号在dpdk-18.11.11 的源码里面搜索,只发现很多使用的地方,没有发现声明。
这意味着上面找不到的符号不是 dpdk 内部定义的符号,那么这些符号可能是 dpdk 依赖的外部头文件。
在网上搜索
搜索了下,发现如下链接中有相同的问题案例:
__ATOMIC_RELAXED undeclared
发现这个问题可能是 gcc 版本过低导致的。网页中的讨论中有下面这一句:
The atomic builtins referenced in atomic.nim are only available with GCC 4.7+
我检查自己编译环境下Centos6.5的 gcc 版本,发现使用的 gcc 为 4.4.7 版本。
这之后我在另外一个Centos7编译环境上重新编译,编译前确认 gcc 的版本高于 4.7,编译成功。
如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!
加入交流群
请使用微信扫一扫!