Какова природа `gcc: error: 0": Нет такого файла или каталога`? - PullRequest
0 голосов
/ 05 октября 2018

Я собираю несколько библиотек из исходного кода, проверенных в последних выпусках.Я уверен, что у меня установлены все зависимости для этих библиотек.Инструменты, которые я использую, дают правильно построенные библиотеки в других системах и правильно устанавливают их необходимые зависимости.Однако на моей текущей сборочной машине я могу настроить и скомпилировать несколько библиотек, но затем gcc выдает следующую зашифрованную ошибку при попытке скомпилировать libiconv и libsodium из исходного кода:

gcc-7: error: 0": No such file or directory

Я не ищуПрямое решение этой проблемы, я просто хочу выяснить, какова природа этой ошибки, когда она появляется в успешно сконфигурированном проекте.*

Что меня поражает, так это "-DPACKAGE_STRING = \" libiconv 0 \ "", которая может привести к чтению строки в качестве отдельных аргументов.Я не понимаю, почему это происходит в некоторых системах, а не в других.

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Некоторые проекты иногда конфигурируются со строкой имени пакета в формате: PACKAGE_STRING = "$ packagename $ version" с пробелом между ними.Этот пробел может в итоге не завершиться правильно, поэтому gcc будет интерпретировать всю строку как две отдельные команды.Решение состоит в том, чтобы либо пропатчить имя во входном файле configure.ac, либо, если это уже предварительно сконфигурированный проект, пропатчить строку имени в строку без пробела, либо пробел правильно отформатирован.

0 голосов
/ 05 октября 2018

Я просто хочу выяснить, какова природа этой ошибки

. Gcc предлагается скомпилировать или, возможно, связать с командной строкой, в которой указан файл, возможно, черезпеременная, имя которой является строкой в ​​кавычках в форме:

"<something> 0"

Это не будет работать, потому что gcc анализирует два аргумента командной строки:

"<something>

и

0"

Например:

$ touch foo.c
$ name="\"foo 0\""
$ gcc -o $name foo.c
gcc: error: 0": No such file or directory
...