В последнее время я кодировал немного больше с терминалом в Linux для получения более глубокого понимания программирования. Прямо сейчас я пытаюсь автоматизировать процесс компиляции со следующей командой:
find . -type f -mmin -1 -name "*.c" | gcc -o output.o -xc -
Это basicly должно найти последний измененный файл с окончанием "*.c"
и скомпилируйте его. Однако я всегда получаю следующую ошибку:
<stdin>:1:1: error: expected identifier or ‘(’ before ‘.’ token
Кто-либо мог помочь мне и объяснить, что я делаю неправильно или показываю мне альтернативу?
Большое спасибо и хорошего дня!
Вы передаете название по каналу файла как код, который будет скомпилирован gcc
Можно передать имя как аргумент файла вместо этого с помощью xargs
:
find . -type f -mmin -1 -name "*.c" | xargs gcc -o output.o -xc
Однако "правильный" инструмент для этого задания действительно make
- который определит, какие цели являются более старыми, чем их предпосылки и компилируют их как требуется.