2017-06-20 11 views
0

ありません、私はUbuntuの14.04.5 LTS上で次のコマンドを使用して64ビットのARMにクロスコンパイルC++アプリケーションにしようとしている:私は致命的なエラー: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> 

が、ヘッダがコンピ中に発見されていません示しlation、:

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'を検索するか、/ usr -nameを見つける 'arm_acle.h''ヒットしますか?) –

+0

コンパイラにそのヘッダファイルへのパスを指定する必要があります(-Iオプション) – Heyji

答えて

2

GCC 4.8は、4年前のコンパイラ(March 2013リリース)であり、ARMv8のAArch64実行状態を早期にサポートするfirst GCC releaseでした。 <arm_acle.h>を通して露出よう__crc32w(crc, value);としてCRCのinstrinsics用

サポートが11th June 2014にGCCのメインラインに加え、GCC 5.1のリリースに含まれていました。

<arm_acle.h>システムヘッダにアクセスするには、GCC 5.1以降のコンパイラが必要です。

関連する問題