eingusteのblog

Windows向けFFmpegバイナリを個人的にビルド(コンパイル)してます。その更新情報など。

タグ:gcc

皆さま、こんばんは。お久しぶりでございます。
おかげさまで gcc-6.1.0 with mingw-w64-v4.0.6 がビルドできました。
ビルドの際、活用させていただいたのが、MSYS2Alexpux/MINGW-packagesの存在です。
MSYS2のi686、x86_64向けのパッケージを作成するためのスクリプトやパッチがたくさんあり、非常に参考になりました。ここがなかったら自力ではビルドできなかったかも知れません。大感謝です。
ここのスクリプトや設定ファイルを調整しながら、我流ではありますが、makepkgコマンドと沢山のパッチの恩恵を受けて、無事ビルドすることができました。そしてここを参考にしてbinutilsは2.26にせず、2.25.1を利用することにしました。MSYS2に合わせた感じです。
また全体のビルドの流れについては、mingw-buildsのビルド情報(build-info.txt)が、ビルド手順の想定ができて大変参考になりました。本当にありがとうございます。

なんとかGCC-6.1をビルドできたところで、FFmpegや必要なライブラリをビルドしてみたところ、いくつかの問題に遭遇しました。pthreadを無効にするため、ヘッダをリネームしたはずなのにヘッダが検出されてたり、ちょっと謎でした。ソースを修正すれば無効にできるのでそれで対応しましたが、そのまますんなりとはいかない感じでした。GCCシリーズとしては新しいものですし、変更点も多く、デフォルトオプションの変更もあるだろうし、当然といえば当然です。
チャレンジ精神を燃やしつつ、コンパイルオプションをいろいろ試しては、make checkなどで各ライブラリの動作を確認したりと、そんな感じでやっておりました。ただ自力では解決できない問題があったので、結局 gcc-6-branch を追っかけて、そちらも試していました。
そんな日々を送っていたところ、GCC 5.4がリリースされたではありませんか!!!。しかもGCC 5.3関連のバグフィックスリリースの様子です。
続きを読む

皆さん、しばし放置気味の当サイトにアクセスしてくださいまして、ありがとうございます。
先日お知らせしたとおり、ビルド環境はMSYS2に移行しています。(Mingw-buildsのgcc-5.3.0でビルドできる環境になっています。)

ただ前からBinutilsGMPMPFR、そしてMingw-w64などのバージョンを更新したいなと考えていました。
そして近頃、gcc-6.1.0がリリースされたことですので、gcc-6.1.0 with mingw-w64-v4.0.6をビルドすることにしました。(スレッドタイプはwin32にするつもりです。)

gcc-6-branchにするか、gcc-6.1.0にするかは悩みどころなのですが、いったんgcc-6.1.0を構築中です。とはいっても、ほとんどスクリプト任せなので微調整が済めば、あとは古めのPC君が、CPUをフル回転させて、頑張ってくれることでしょう。(^^;;;
PC君が壊れませんように(^^;;;
GCC Bugzilla – Bug Listをチェックしつつ、必要そうだったら gcc-6-branch のビルドに切り替えるかもしれません。

また mingw-w64 も v4.0.6 ではなく、 v4.x または master ブランチをビルドするほうが良いのかも知れません。各ブランチのコミットを見ると、Windows10への対応などもあるようですから。
ただとりあえずは、リリース版を使って環境を構築していく予定です。

なおFFmpegは、最近、あまり利用していないので、のんびりやっております。
FFmpegのビルドは少し先になるかと思いますが、Zeranoe FFmpeg という大きな存在がありますので問題ないですよね。

お知らせ、近況報告は以上です。では、またお会いしましょう。(^^)/~~

クリーンインストールやら、いろいろ試したので、ついでにFFmpegのビルド環境も変更してみようと思いたちました。
ベースを現在のMSYS(mignw)からMSYS2に移行して、FFmpegやその関係のライブラリはmingw-w64を利用してビルドしようというものです。
MSYS2のmingw-w64を利用してもいいですよね。でもスレッドがPOSIXというところが引っかかって。より機能は良いようですけど。
今回は今まで通り、mingw-buildsのGCCを利用することにしました。
x86、x86_64の両方が配布されていますので、win32のスレッドで、x86は例外処理dwarfx86_64はsehを利用することにしました。

外部ライブラリも一通り、ビルドできたので、後はFFmpeg本体のビルドができるか確認しているところです。
今後は、こちらの環境でビルドしたものをアップしたいと思います。
以上

↑このページのトップヘ