2017-06-20 201 views
0

我想要交叉编译C++应用程序使用下面的命令,到ARM在Ubuntu 14.04.5 LTS 64位:致命错误:arm_acle.h:没有这样的文件或目录

aarch64-linux-gnu-g++-4.8 -Wall -std=c++0x -O0 -march=armv8-a+crc -c mySRCs.c -o myOBJs.o 

我要使用像CRC32指令:

crc = __crc32w(crc, value); 

,我包含在代码:

#include <arm_acle.h> 

但头部没有被组合物1的过程中发现特征研,其中显示:

fatal error: arm_acle.h: No such file or directory 

#include <arm_acle.h> 
       ^
compilation terminated. 

如果我不包括头明确,出现以下错误:

error: ‘__crc32w’ was not declared in this scope 
    crc = __crc32w(crc, val); 

的代码示例:

#include <arm_acle.h> 
#include <cstring> 
#include <cmath> 

int main(){ 

     uint32_t val = 56; 

     uint32_t crc = 0; 

     crc = __crc32w(crc, val); 

     printf("Result: %u\n",crc); 

} 

任何想法?

+0

你从哪里了解到该标题和功能?头文件是否在系统的任何位置(比如,如果你确实找到了'locate arm_acle.h'或'find/usr -name'arm_acle.h''你会得到什么结果)? –

+0

您仍然需要将该头文件的路径提供给编译器(-I选项) – Heyji

回答

2

GCC 4.8是一个4岁的编译器(发布March 2013),并且first GCC release为ARMv8的AArch64执行状态提供了早期支持。

通过<arm_acle.h>公开的对CRC内在因子的支持,例如__crc32w(crc, value);已被添加到GCC主线11th June 2014,并且包含在GCC 5.1版本中。

如果您想访问<arm_acle.h>系统标题,您需要GCC 5.1或更高版本的编译器。

相关问题