Новичок: Как на самом деле использовать gperf? Он просто зависает каждый раз, когда я его запускаю
Я новичок в программировании, сейчас беру онлайн-курс Гарвардского курса CS50x. Степень моего знакомства с кодом, языками и средами - это то, чему меня до сих пор учили на C. С расплывчатым руководством из других вопросов на этом сайте я потратил около 4 дней на установку gperf, с того момента, как узнал, что такое Cygwin для установки всех его библиотек и проверки ошибок установки вплоть до выяснения того, куда он наконец поместил установленную программу. Я был так счастлив, когда только что нашел приложение gperf.exe. Я думал, что наконец-то получил хеш-функцию, которую пытался создать почти неделю.
И теперь программа ничего не делает, а зависает каждый раз, когда я пытаюсь ее запустить, сообщений об ошибках нет. Отсутствие входного файла приводит к зависанию. При любом количестве и выборе опций, указанных в мануале, он просто зависает. Даже отладка говорит, что входит в отладку, а потом просто зависает. Единственный способ заставить программу вообще отреагировать - предложить ей недопустимый входной файл, который, по ее словам, недействителен. Больше ничего не делает; нет выходного файла, нет ответа командной строки, ничего. Я разочарован до слез, а документация, поставляемая с gperf, предполагает, что вы профессиональный программист, бесконечно говорите о сотнях высокоуровневых параметров настройки для изменения программы, но ни слова о том, как заставить ее просто работать на базовом уровне. Я много искал в Google и на этом сайте,и очень мало всплывает, как только я ищу конкретно проблемы, связанные с gperf.
Может ли кто-нибудь просто объяснить, как заставить эту программу работать? Я уверен, что это какая-то глупая мелочь, которую мне не хватает, но все, что я хочу, это взять мой входной файл строк и дать мне хеш-функцию на C. Любая помощь приветствуется, я абсолютно понятия не имею то, что я делаю, и даже установка gperf была многодневным процессом, который выходит далеко за рамки того, что я делал до сих пор.
Спасибо.
РЕДАКТИРОВАТЬ: Выполнения, которые я пробовал передать:gperf ./gperf
Аргументы, которые я пытался передать: -a -c -d --output-file 'FILE'
Я пробовал все это с включением моего входного файла с именами "keys" и "keys.txt" и без него. Единственное, что вызвало какой-либо ответ от программы, - это присвоение ей неправильного имени входного файла, в результате чего "не удалось загрузить ключи входного файла".
1 ответ
gperf
может работать медленно, если предоставленный вами входной файл большой, то есть содержит много ключей. Вы можете составить представление о том, что такое "маленькие" файлы и "большие" файлы, просмотрев документацию: известные ошибки и ограничения.