最近、このようなx264のよう移行の問題、移行サードパーティのライブラリを扱う新しいボードは、奇妙な問題が発生しました。これは、取得するための新しいボードで、検証プログラムの必要性故に、コストが比較的高いと言われています
論理的には、大きなポイントとの互換性サードパーティのライブラリは、特にこれに類似X264、よくやっています。
しかし、多くの問題が生じ、ARMチップを強制するだけでなく、長い時間をトスし、ついに完全にインとアウト、次のマークを理解しません。
一般的には、configureコマンド長い考慮して、我々は(例:install.sh)バッチファイルを作成し、ファイルにパラメータを指揮する必要があります、
そして、あなたは自動的に生成されたメイクファイルを変更することができますバッチファイルを実行します
最後に、作る&make installを
一般的なクロスコンパイラ、設定を変更することができます。
CC =アームのLinux-GCCは./configure --host =アームのLinux --disable-AVS --disable-swscale --disable-lavf --disable-ffms --disable-lsmash --prefix = / USR / h264_a9 --crossプレフィックス=アームlinux- --enable- 静的 --enable共有
一般的には、そうOK。そして、すべてがうまくいく、成功していない場合は、通常の背後にある問題のパラメータを設定します
しかし、iMX6コンテックス-A9アーム-pokyないCPUは、コンパイラは良いパッケージであると言われています。
もちろん、裁判の後、または次のように、解決策を見つけます:
CC =アームpoky-のlinux-gnueabi-gccのCFLAGS = " -march =のARMv7--mfpu =ネオン-mfloat-ABI =ハード-mcpu =皮質-A9 --sysroot =は/ opt / FSL-IMX-FB / qt5 / sysroots / cortexa9hf-ネオンpoky-linuxの-gnueabi " LDFLAGS = " -march =のARMv7--mfpu =ネオン-mfloat-ABI =ハード-mcpu =皮質-A9 --sysroot =は/ opt / FSL-IMX-FB / qt5 / sysroots / cortexa9hf-ネオンpoky-Linuxベースgnueabi 」は./configure - ホスト=アームpoky-Linuxベースgnueabi --disable-AVS --disable-swscale --disable-lavf --disable-ffms - -disable-lsmash --prefix = / USR / h264_a9 --crossプレフィックス=アームpoky-Linuxベースgnueabi- --enable静的--enable共有
はい、期間の長さから、多くの。。。
具体的にはLDFLAGSとCFLAGS、私は2つのパラメータが同じであるここにいました。(二つのパラメータが追加されることに注意してください、始まるだけプラスではなく、通常では、何の場合は、この才能はありません)
下を見て、このパラメータが含まれているどのような情報はおそらくです
CFLAGS = " - 行進=のARMv7--mfpu =ネオン-mfloat-ABI =ハード-mcpu =皮質-A9 --sysroot =は/ opt / FSL-IMX-FB / qt5 / sysroots / cortexa9hf-ネオンpoky-linux- gnueabi」
"-march =のARMv7-A -mfpu =ネオンハード= -mfloat-ABI -mcpu =皮質-A9" は、このCPUのタイプ
"--sysroot =は/ opt / FSL-IMX-FB / qt5 / sysroots / cortexa9hf-ネオンpoky-linuxの-gnueabi" コンパイラの格納パスは、パスが完了していなければならない場所です(フォルダ)
言い換えれば、これらのパラメータは、makeを伝える必要があり、省略することはできません
はい、事があり、LDFLAGSとCFLAGSは、それ以外の場合は適切ではない、は./configureの前に置かれるべきです。
このバッチの実行が完了した後、あなたは内部文書「config.mak」の変化を見ることができます。(それが変更された場合は、このボックスの内容を注意してください)
コンテンツボックスが搭載されていると私たちの思考は一晩変更しますか?何も指示がない場合、install.shは、右の書き込みを再び動作させる必要はありませんでした
(内容は非常に重要である場合には、多くのオンラインのファイルが直接成功を修正するために、一見難しい.MAKを変更しました)
さて、これまでのところ、それはまた、実際には、ケースを明確に記述するためのより良い時間をトスするための最も重要な場所です。しかし、さまざまなエラーをパラメータの束、またはコンパイラを書き込むには、エラーメッセージが間違っているにリンクされている設定パラメータを見てすることは困難です!!!これは嫌な場所です。私たちは、私がエラーを持って、見ることができます:
アームpoky-のlinux-gnueabi-として-I。-私。-o共通/アーム/ CPU-AO共通/アーム/ CPU- aSに 共通 /腕/ CPU- アセンブラメッセージ:次のように: 共通 /アーム/ CPU-AS:32:エラー:悪い命令` 関数 cpu_neon_test ' 共通/アーム/ CPU-AS:33:エラー選択されたプロセッサはないない ` vadd.i16のQ0、Q0、Q0をサポート' ARMモードで 共通/アーム/ CPU-AS:35:エラー:不正な命令`ENDFUNC ' 共通/腕/ CPU-AS:40:エラー:不正な命令` 関数 cpu_enable_armv7_counter、輸出= 0 '
アームpoky-Linuxの-gnueabi-AS:認識できないオプション' -STACK_ALIGNMENT = 4 '
とにかく、奇妙なエラーの様々な、当然のことながら、突然、どこに問題を知っているいくつかの大きな神があるかもしれません。。。。
拡張の下では、Eclipseのを経由して、通常、そのプロジェクトコードので、その後、Eclipseの下のクロスコンパイラを追加し、どのように動作しなければなりませんか?
通常の状況下で、我々は場所に建設中のコマンドがそれを修正する限りです(3ヶ所あります)
事実iMX6 cortext-A9チップでは、まだ十分ではない、私たちのようにする必要があり
1。C / C ++ビルド- [設定] - [ツールの設定-クロスGCCコンパイラ- その他-その他のフラグ: 2。C / C ++ビルド- [設定] -ツール設定-クロスG ++コンパイラ- その他-その他のフラグ: 3。C / C ++ビルド- [設定] -ツール設定-クロスG ++リンカ-その他- リンカフラグ: 4。注意以上三个地方、都要添加!
-march =のARMv7--mfpu =ネオン-mfloat-ABI =ハード-mcpu =皮質-A9 --sysroot =は/ opt / FSL-IMX-FB / qt5 / sysroots / cortexa9hf -neon-poky-linuxの-gnueabi