Новичок: как мне на самом деле использовать gperf? Он просто зависает каждый раз, когда я запускаю его - PullRequest
1 голос
/ 03 апреля 2020

Я очень новичок в кодировании, в настоящее время я учусь в Гарвардском классе CS50x онлайн. Степень моего знакомства с кодом, языками и средами - это то, чему меня научили в C. Под расплывчатым руководством по другим вопросам на этом сайте я потратил около 4 дней на установку gperf, от изучения того, что такое Cygwin, до установки всех его библиотек и проверки ошибок на всех этапах, до выяснения, куда он наконец поместил Установленная программа. Я был так счастлив, когда нашел приложение «gperf.exe» только сейчас. Я думал, что наконец-то собираюсь получить функцию ha sh, которую я пытался сделать почти неделю.

И теперь программа ничего не делает, только зависает каждый раз, когда я пытаюсь ее запустить, нет сообщений об ошибках. Отсутствие входного файла приводит к его зависанию. Делая любое количество и выбор опций, указанных в руководстве, он просто зависает. Даже отладка говорит, что входит в отладку, потом просто зависает. Единственный способ заставить программу реагировать вообще - предложить ей неверный входной файл, который, как он говорит, неверен. Ничто другое не делает ничего; нет выходного файла, нет ответа командной строки, ничего. Я расстроен до слез, и документация, поставляемая с gperf, предполагает, что вы профессиональный программист, бесконечно рассказывая о сотнях высокоуровневых опций настройки для модификации программы, но ни слова о том, как заставить ее просто работать на уровне c. Я много раз искал в Google и на этом сайте, и очень мало всплывает, как только я ищу проблемы, связанные с gperf.

Кто-нибудь может просто рассказать мне, как заставить эту программу работать? Я уверен, что это какая-то глупая маленькая вещь, которую я пропускаю, но все, чего я хочу, это взять мой входной файл строк и дать мне функцию ha sh в C. Любая помощь приветствуется, я абсолютно не знаю, что я делаю, и даже установка gperf была многодневным процессом, который выходит далеко за рамки того, что я сделал до сих пор.

Спасибо .

РЕДАКТИРОВАТЬ: Выполнения, которые я пытался передать: gperf ./gperf

Аргументы, которые я пытался передать: -a - c -d --output-file 'FILE'

Я пробовал все это с включением и без ввода моего входного файла, названного «keys» и «keys.txt». Единственная вещь, которая вызвала какой-либо ответ от программы, дала ему неправильное имя входного файла, что дало результат «не удалось загрузить« ключи »входного файла».

1 Ответ

0 голосов
/ 04 апреля 2020

gperf может быть медленным, если заданный вами входной файл имеет большой размер, то есть содержит много ключей. Вы можете получить представление о том, что такое «маленькие» файлы по сравнению с «большими» файлами, просмотрев документацию: Известные ошибки и ограничения .

...