LINUX.ORG.RU

Xlunch: Вопрос к arch и arch-based пользователям

 , , xlunch


0

1

Здравствуйте.

Пытаюсь ставить xlunch-git из aur:

==> Starting build()...
gcc xlunch.c -o xlunch -lImlib2 -lX11 -march=armv8-a -mno-omit-leaf-frame-pointer -O2 -pipe -fstack-protector-strong -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security         -fstack-clash-protection
      -fno-omit-frame-pointer
xlunch.c: In function ‘main’:
xlunch.c:2645:31: error: too many arguments to function ‘parse_entries’; expected 0, have 1
 2645 |                 int changed = parse_entries(input_source);
      |                               ^~~~~~~~~~~~~ ~~~~~~~~~~~~
xlunch.c:1126:5: note: declared here
 1126 | int parse_entries()
      |     ^~~~~~~~~~~~~
make: *** [Makefile:46: xlunch] Error 1
==> ERROR: A failure occurred in build().
    Aborting...

Xlunch.c я в проблемной строчке посмотрел, и, естественно, не врубился - для меня это всё тёмный лес, если честно.

Я, конечно, бинарник из бэкапа выдернул, в ~/.local/bin положил, и пользуюсь, но всё-таки хотелось бы как-то понять в чём дело, ибо оный xlunch активно использую.

Прошу прошаренных граждан по возможности прояснить мне вопрос. Спасибо за внимание.

★★★★★

Последнее исправление: piyavking (всего исправлений: 2)

Посмотрел исходный код - хз, чё автор творит. Весь код проекта находится в одном .c-файле, там нет никаких странных макросов.

Объявление функции не имеет явно заданных аргументов, а input_source это глобальная переменная, так что можно заменить вызов на обычный parse_entries(), вроде как.

Сам я компилировать это чудо не пытался.

Bfgeshka ★★★★★
()

Прошу изнинить, к арчу никак даже близко. Но вроде-же всё сказано.

error: too many arguments to function ‘parse_entries’; expected 0, have 1
 2645 |                 int changed = parse_entries(input_source);

Слишком много передаёшь аргументов.

note: declared here
 1126 | int parse_entries()

Декларировано, аргументов не должно быть.

andytux ★★★★★
()
Ответ на: комментарий от andytux

По совеременным требованиям к сишечке, вроде как функция должна была объявляться как int parse_entries(void). А в таком стиле, как в исходнике, писали ещë перед появлением ANSI C, и это был сигнал компилятору выключить все проверки аргументов.

yars068 ★★★★★
()
Ответ на: комментарий от krasnh

Да, сборка - штука архитектурозависимая, и для малинки многих софтин формально не существует, но когда кого подобные мелочи останавливали?)

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 1)