2

Ubuntu 11.10 で VLC2.0 をコンパイルしようとしていますが、このエラーに悩まされています。Intel の最新のコンパイラ スイートを使用して、contrib/ 内のすべての依存関係を既に正常にコンパイルしています。ただし、posix/filesystem.c をコンパイルするとエラーが発生します。

VLC の構成:-

../configure --host="x86_64-linux-gnu" --build="x86_64-linux-gnu" --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-gnutls --enable-libass --enable-libbluray --enable-libcdio --enable-libdirac --enable-libfaac --enable-libfreetype --enable-libmp3lame --enable-libopenjpeg --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvo-aacenc --enable-libvorbis --enable-libx264 --enable-libxvid --enable-openssl --enable-openal

makefile のいくつかのフラグを編集しました。関連するフラグは次のとおりです。

CC = icc -std=gnu99
CFLAGS = -O3 -ipo -I/usr/local/src/vlc-2.0.0/contrib/x86_64-linux-gnu/include -Wall -Wextra -Wsign-compare -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wmissing-prototypes -Wvolatile-register-var -Werror-implicit-function-declaration -pipe -fvisibility=hidden  -funroll-loops -fomit-frame-pointer -finline -finline-limit=1000
CPP = icc -E
CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include  -I/usr/local/src/vlc-2.0.0/contrib/x86_64-linux-gnu/include
CXX = icpc
CXXCPP = icpc -E
CXXFLAGS = -O3 -std=gnu99 -xHost -I/usr/local/src/vlc-2.0.0/contrib/x86_64-linux-gnu/include -Wall -Wextra -Wsign-compare -Wpointer-arith -Wvolatile-register-var -fvisibility=hidden  -funroll-loops -fomit-frame-pointer

make 段階で、次のエラーが発生します。

CC     posix/filesystem.lo
../../src/posix/filesystem.c(300): warning #589: transfer of control bypasses initialization of:
            variable "ln" (declared at line 302)
          goto error;
          ^

/usr/include/bits/fcntl2.h(44): error #18015: invalid use of '__builtin_va_arg_pack_len'
/usr/include/bits/fcntl2.h(57): error #18015: invalid use of '__builtin_va_arg_pack_len'
/usr/include/bits/fcntl2.h(60): error #18015: invalid use of '__builtin_va_arg_pack'
/usr/include/bits/fcntl2.h(120): error #18015: invalid use of '__builtin_va_arg_pack_len'
/usr/include/bits/fcntl2.h(133): error #18015: invalid use of '__builtin_va_arg_pack_len'
/usr/include/bits/fcntl2.h(136): error #18015: invalid use of '__builtin_va_arg_pack'
compilation aborted for ../../src/posix/filesystem.c (code 1)

オンラインで調べたところ、gcc でこのエラーを引き起こす最適化フラグ、特にインライン化に関連するフラグについて言及しているメーリング リストがいくつか見られました。その-ipo -finline -finline-limit=1000ため、CFLAGS に追加しました。しかし、これは問題を解決していないようです。

誰でもこの問題を解決するのを手伝ってもらえますか?? filesystem.lo を手動でコンパイルするために、使用された正確なコンパイル コマンドを見つけようとしましたが、make使用された正確なコマンドを出力する方法が見つかりませんmake -d。私はなんとかfilesystem.cをコンパイルしましたが、libtoolオブジェクトファイルではなく、ELF 64ビット実行可能ファイルを作成しました...

どんな助けでも大歓迎です!

ps。VLC2 を icc でコンパイルしたいという理由で他の誰かがここにいる場合、私は musepack と libvpx に問題がありましたが、いくつかの Makefile の修正でそれが解決されました。リクエストに応じて、私の変更を喜んで共有します。

4

0 に答える 0