Список аргументов слишком длинный. Создание библиотеки Hubbub для анализа HTML. execv - PullRequest
2 голосов
/ 02 сентября 2010

Когда я пытаюсь собрать эту библиотеку в моей системе (Fedora)

Linux localhost.localdomain 2.6.33.8-149.fc13.i686 #1 SMP Tue Aug 17 22:45:56 UTC 2010 i686 i686 i386 GNU/Linux

Я получаю длинный список ошибок, из которых это последние несколько строк:

build/makefiles/Makefile.top:542: warning: overriding commands for target `build-Linux-Linux-release-lib-static/src_charset_detect.o'
build/makefiles/Makefile.top:542: warning: ignoring old commands for target `build-Linux-Linux-release-lib-static/src_charset_detect.o'
 COMPILE: src/hubbub.c
cc: error trying to exec '/usr/libexec/gcc/i686-redhat-linux/4.4.4/cc1': execv: Argument list too long
make: *** [build-Linux-Linux-release-lib-static/src_hubbub.o] Error 1

Вы можете скачать make-файл, в котором эта ошибка появляется здесь:

http://www.touspassagers.org/downloadable/Makefile.top

Я думаю, мне просто нужно разбить аргументы execv, чтобы их было не так много. Как мне сделать это в контексте этого файла в каждом экземпляре, в котором он появляется? Я слышал, Xargs - это путь. но я не знаю, как его использовать. Я довольно новичок в bash.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2013

На основании того, что Dreamlax обнаружил, что список среды также имеет значение, вы можете проверить среду до запуска процесса сборки и удалить чрезмерно длинные переменные или даже попробовать env -i build- команда .

0 голосов
/ 06 мая 2011

Попробуйте еще раз после обновления gcc как минимум до 4.5.0

Я думаю, эта ошибка была исправлена ​​ в этом выпуске.

...