Как заставить C++ скомпилироваться из Code::BLocks? (От новичка до Linux)

Как заставить C++ скомпилироваться из Code::BLocks? (От новичка до Linux)

Итак, я только что установил Linux после того, как всю жизнь пользовался Windows. Я также только что установил C++ IDE, code::blocksиспользуя следующую команду в терминале:

sudo apt-get install codeblocks

Теперь всякий раз, когда я пытаюсь запустить какой-либо исходный код, я получаю эту ошибку

sh:1 /home/daniel/Desktop/Hey: Permission Denied

Есть ли помощь/решение?

решение1

Нормальное поведение CodeBlocks при работе с одним файлом (в отличие от проекта) — использовать имя файла без расширения в качестве имени скомпилированного исполняемого файла. Поэтому hello.cppбудет создан двоичный файл с именем hello. CodeBlocks проверяет временные метки файлов, чтобы узнать, нужна ли компиляция. Это ломается, когда у файла нет расширения: исходный файл с именем helloбудет иметь двоичный файл с именем helloс точки зрения CodeBlocks. Поэтому проверка временных меток не выполняется, поскольку он сравнивает файл с самим собой. Следовательно, CodeBlocks не компилирует код, а вместо этого пытается запустить его напрямую, что приводит к ошибке, поскольку исходный файл не является исполняемым. (Это не будет проблемой для исполняемого исходного кода, такого как скрипты оболочки.)

Поэтому всегда сохраняйте исходный код C/C++ с соответствующим расширением при использовании CodeBlocks (и вообще).

Связанный контент