2

我正在尝试在 Ubuntu 11.10 上编译 VLC2.0,并且被这个错误难住了。我已经使用英特尔最新的编译器套件成功编译了 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

在制作阶段,我收到此错误:

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,但它生成了一个 ELF 64 位可执行文件,而不是一个 libtool 目标文件......

非常感谢任何帮助!

附言。如果其他人在这里是因为他们想尝试使用 icc 编译 VLC2,我遇到了 musepack 和 libvpx 的问题,但是一些 Makefile 修复程序解决了这个问题。我很乐意应要求分享我的更改。

4

0 回答 0