2017-06-15 13 views
1

私は新しいyasmを持っていますが、x264はそれでクールだと思いますが、なぜx264はそれで涼しくないのですか?YASMでx264を構築する:ASMのチェックに失敗しました

私は理由から、ガイドhereに続いて、フロッピーからffmpegビルドを含むCentOSドッカー画像(centos:latestに基づく)を構築しています。それは良いガイドです、それは以前私のために働いていたので、私はそれについて良い気分でした。

今日はlibx264ビルド点にチョークポイントを打っています:具体的には、私は

PKG_CONFIG_PATH="/tmp/ffmpeg_build/lib/pkgconfig" \ 
    ./configure \ 
    --prefix="/tmp/ffmpeg_build" \ 
    --bindir="/tmp/bin" \ 
    --enable-static 

を言うと、私は戻って

見つかりませアセンブラ

最小バージョンを返信をもらいますnasm-2.13

本当にasmなしでコンパイルしたい場合は--disable-asmで設定してください。

これは予想外です。私はyasmを持っています。これは、1)nasmがやっていることをやっているが、より良いことをすること、2)デージーでフレッシュな最新のバージョンであること、1時間ほど前にrepoから引き出して五十分前。それは何の価値があるのか​​については、指示がそれを要求してからnasmも箱に入っていますが、それは彼らの述べられたバージョンの下にあります(つまり、2014年6月9日にコンパイルされたNASMバージョン2.10.07です)。

yasmはそうではありません見つけられる。その問題に言及しているもう1つのStackExchange questionがあります。これは問題のパスに出てきました。まだ発見-NO-アセンブラの問題を与えた

PATH=/tmp/ffmpeg_sources/yasm:$PATH \ 
    PKG_CONFIG_PATH="/tmp/ffmpeg_build/lib/pkgconfig" \ 
    ./configure 
    ...etc 

:だから、私はそうのように私のパスにyasmを追加しました。最後の混乱したリゾートとして、変数$ ASに使いたいものをスクリプトに明示しました。なぜなら、yasm/nasmが行くつもりだったように見えるconfigureの簡単な見方に基づいているからです。コマンドは次のようになります。少なくとも

見つかりyasm 1.3.0

最小バージョンは、あなたが本当にASMなしでコンパイルしたい場合は、設定のnasm-2.13

ありました

AS=`which yasm` 
    PKG_CONFIG_PATH="/tmp/ffmpeg_build/lib/pkgconfig" \ 
    ./configure 
    ...etc 

--disable-asmを指定します。

私は以下を参照してください。config.logの中で探している相手:

checking whether /tmp/bin/yasm supports vmovdqa32 [eax]{k1}{z}, zmm0... no 
Failed commandline was: 
-------------------------------------------------- 
/tmp/bin/yasm conftest.asm -I. -I$(SRCPATH) -DARCH_X86_64=1 -I$(SRCPATH)/common/x86/ -f elf64 -o conftest.o 
conftest.asm:1: error: instruction expected after label 
conftest.asm:1: warning: ignoring unrecognized character `{' 
conftest.asm:1: warning: ignoring unrecognized character `}' 
conftest.asm:1: warning: ignoring unrecognized character `{' 
conftest.asm:1: warning: ignoring unrecognized character `}' 
-------------------------------------------------- 
Failed program was: 
-------------------------------------------------- 
vmovdqa32 [eax]{k1}{z}, zmm0 
-------------------------------------------------- 

ので:ここでの契約は何ですか? yasmドロップインがnasmを悪いものに置き換えるという私の前提ですか? yasmはこの目的にはいいですが、私は./configureに適切な情報を提供していませんか? CentOSのためのffmpegを構築するための私の指示は、この前提条件に関して単に古くなっています。私は現代的な害虫を得るためにもっと努力すべきですか?

答えて

2

古いバージョンのx264がデフォルトでyasmを使用していましたが、新しいバージョンではデフォルトでnasmが使用されています。

設定ASでアセンブラをオーバーライドすることはできますが、configureではyasmと互換性がないと思われる命令をチェックします。

さらに、yasmは、2014年にアクティブに開発中のnasmで最後にリリースされました。

+0

ありがとうございます!私はyasm(nasmではなく)へのデフォルト設定が開発者による積極的な決定であったことを理解していませんでした。 – radiofreemyourenji

関連する問題