Ошибки при компиляции кода C [закрыто]

Попробуйте:

find "$TARGET_DIR//." \( -name . -o -prune \) -type d -exec sh -c '
  for f do
    f=${f%//.}
    f=${f%"${f##*[!/]}"}
    f=${f##*/}
    printf "(DIR) %s\n" "${f:-/}"
  done' sh {} +

Было бы проще для эквивалента -mindepth 1 -maxdepth 1:

find "$TARGET_DIR//." \( -name . -o -prune \) -type d -exec sh -c '
  for f do
    printf "(DIR) %s\n" "${f##*/}"
  done' sh {} +

Для второго:

find "$TARGET_DIR//." ! -name . -prune -type f -exec sh -c '
  for f do
    size=$(($(wc -c < "$f") +0)) || continue
    printf %s "$size ${f##*/} "
    file -b -- "$f"
  done' sh {} +
1
13.04.2017, 15:36
2 ответа

Похоже, что вы изначально назвали файл C permute ; когда make завершился неудачно, вы попытались выполнить его с помощью своей оболочки, что привело ко всем этим синтаксическим ошибкам (поскольку оболочка не знает, как выполнять код C).

Во втором случае вы нажимаете комментарий:

// В качестве первого аргумента необходимо указать длину (integer

// В противном случае он выйдет из строя и сгорит

потому что вы не предоставили программе первый (или какие-либо) аргументы. Попробуйте ./ permute.bin 10 .

1
27.01.2020, 23:46

В первом случае похоже, что вы сохранили код C как permute , а затем попытался запустить

make CFLAGS=-O3 permute && time ./permute 5 >/dev/null

Поскольку нет Makefile с целью для make , он завершился без ошибок при печати информационного сообщения,

Ничего не должно быть сделано для "перестановки".

Поскольку make не вернул код ошибки, была выполнена вторая часть этой команды ( time ./permute 5> / dev / null ). Поскольку permute - это исходный код, а не исполняемый двоичный файл, он был интерпретирован как сценарий оболочки, в результате получился следующий результат:

./permute: line 3: //global: No such file or directory
./permute: line 4: const: command not found
./permute: line 5: char: command not found
./permute: line 7: syntax error near unexpected token `('
./permute: line 7: `void permute(int level) {'

Лучшими инструкциями было бы сохранить исходный код C в permute. c , а затем выполните следующую команду, чтобы скомпилировать его (и связать с необходимыми файлами библиотеки):

gcc -O3 -o permute permute.c

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

./permute 2
0
27.01.2020, 23:46

Теги

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