Почему файлы.cpp могут работать на xterm, а файлы.c или.cc - нет?
Я написал код для кодовых блоков, скомпилировал его, и он создал исполняемый файл, но не запустился. xterm показывает отказано в разрешении. но когда я сохранил программу с расширением.cpp, она работала хорошо и создал файл с расширением *.o. Может кто-нибудь, пожалуйста, опишите, почему это происходит и что с препроцессором? Заранее спасибо. разрешение отказано в показе
1 ответ
Базовый компилятор (обычно gcc
) использует расширение имени файла, чтобы определить, какой код содержится в файле и, следовательно, как его скомпилировать (хотя это можно переопределить с помощью -x
опция).
В этом случае вы, кажется, сохранили то, что кажется кодом C, с именем файла untitled
, с которым компилятор не знает, как обращаться. На самом деле, похоже, что IDE CodeBlocks тоже не знает, как с этим обращаться, поэтому по умолчанию пытается выполнить его как сценарий оболочки.
Когда вы даете свой файл .cpp
расширение IDE и компилятор обрабатывают его как код C++, и файл успешно компилируется.
Обратите внимание, что .o
file - это файл объектного кода, а не исполняемая программа: в этом заключается разница между компиляцией и сборкой.