Почему файлы.cpp могут работать на xterm, а файлы.c или.cc - нет?

Я написал код для кодовых блоков, скомпилировал его, и он создал исполняемый файл, но не запустился. xterm показывает отказано в разрешении. но когда я сохранил программу с расширением.cpp, она работала хорошо и создал файл с расширением *.o. Может кто-нибудь, пожалуйста, опишите, почему это происходит и что с препроцессором? Заранее спасибо. разрешение отказано в показе

1 ответ

Решение

Базовый компилятор (обычно gcc) использует расширение имени файла, чтобы определить, какой код содержится в файле и, следовательно, как его скомпилировать (хотя это можно переопределить с помощью -x опция).

В этом случае вы, кажется, сохранили то, что кажется кодом C, с именем файла untitled, с которым компилятор не знает, как обращаться. На самом деле, похоже, что IDE CodeBlocks тоже не знает, как с этим обращаться, поэтому по умолчанию пытается выполнить его как сценарий оболочки.

Когда вы даете свой файл .cpp расширение IDE и компилятор обрабатывают его как код C++, и файл успешно компилируется.

Обратите внимание, что .o file - это файл объектного кода, а не исполняемая программа: в этом заключается разница между компиляцией и сборкой.

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