2017-06-20 748 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或更高版本的編譯器。

相關問題