Не могу запустить мой мир привет в C

По умолчанию hexdump удаляет повторяющуюся строку и помещает один * в том месте, где удалена одна или несколько строк. Удалив первый столбец с позициями файла, вы потеряете единственное указание на то, сколько строк было удалено, поэтому невозможно восстановить исходный файл.

Предположительно, вам нужно число, которое однозначно представляет исходный файл, поэтому вам нужно будет начать с hexdump -v. Как показано в предыдущем ответе, можно дать hexdump другие аргументы, чтобы изменить формат вывода в запрошенный формат.

Однако, если у вас по какой-то причине есть только вывод hexdump -v, а не исходный файл, также можно было бы удалить первый столбец и белое пространство следующим образом:

cat filename.txt | cut -c9- | tr -dc 0-9a-f

Здесь cut -c9- удалит самые левые 8 символов каждой строки, выводя только 9-й символ и все после него. И tr -dc 0-9a-f будет содержать только символы в диапазоне 0-9 или a-f, поэтому все пробелы и новые строки удаляются.

4
задан 18 January 2018 в 19:28

4 ответа

gcc создает исполняемый файл с именем a.out по умолчанию. Выполните это вместо.

В качестве альтернативы создайте разумный именованный исполняемый файл:

gcc -o hello hello.c

И еще проще, используя стандартные правила, встроенные в make:

make hello
38
ответ дан 17 July 2018 в 22:47

Вам нужно установить соответствующий пакет с заголовками (обычно libc6-dev) с

sudo apt-get install libc6-dev

И, конечно, установить build-essential с

sudo apt-get install build-essential

Затем скомпилировать ваш hello.c с командой:

gcc hello.c -o hello

и запустите его:

./hello
9
ответ дан 17 July 2018 в 22:47

gcc создает исполняемый файл с именем a.out по умолчанию. Выполните это вместо.

В качестве альтернативы создайте разумный именованный исполняемый файл:

gcc -o hello hello.c

И еще проще, используя стандартные правила, встроенные в make:

make hello
38
ответ дан 24 July 2018 в 13:23
  • 1
    И кто напишет Makefile ?! – N0rbert 17 January 2018 в 20:49
  • 2
    Вам не нужно иметь makefile для использования make! Попробуйте и посмотрите ... – nickcrabtree 17 January 2018 в 20:51
  • 3
    Отлично, это действительно работает. – N0rbert 17 January 2018 в 20:52
  • 4
    Я обновил свой ответ для ссылки на соответствующую часть документации Gnu make – nickcrabtree 17 January 2018 в 20:52
  • 5
    для меня он возвращает: make: ничего не нужно делать для «init.c». – Sketch 17 January 2018 в 20:53

Вам нужно установить соответствующий пакет с заголовками (обычно libc6-dev) с

sudo apt-get install libc6-dev

И, конечно, установить build-essential с

sudo apt-get install build-essential

Затем скомпилировать ваш hello.c с командой:

gcc hello.c -o hello

и запустите его:

./hello
9
ответ дан 24 July 2018 в 13:23
  • 1
    Думаю, я установил их тысячу раз. но последняя часть, кто-то уже прокомментировал это, работал. благодаря! – Sketch 17 January 2018 в 20:55

Другие вопросы по тегам:

Похожие вопросы: