2013-12-07 3 views
0

Например, если я неправильно #include что-то, и препроцессор получает сообщение об ошибке, он все еще проходит через компилятор, ассемблер и компоновщик?Не удается ли остановить программу?

+0

Пример? Как вы имеете в виду «неправильно»? – nhgrif

+0

Как если бы я набирал #include вместо #include, препроцессор дает ошибку. – user3078633

+1

Скорее всего, не будет компилироваться вообще, но это может зависеть от IDE. Вы можете попробовать и узнать, да? – nhgrif

ответ

0

Сделать небольшую программу, которая содержит только эту строку:

 #includerr (stdio.h) 

И скажите мне, что происходит ...

Вы можете увидеть любые .OBJ или .O или .EXE или a.out файлы? Если вы видите .O или .OBJ, файл был скомпилирован и собран. Если вы видите файлы .EXE или a.out, файл был связан со стандартными библиотеками и создал исполняемый файл.

Если вы не видите ни одного из этих файлов, попробуйте вручную скомпилировать файл. Например, в Linux вы можете сделать:

gcc -c -S file.c

будет собирать и производить файл сборки, а затем остановится. Если после этого вы можете увидеть файл .S, и файл не пуст, file.c был успешно скомпилирован и переведен на ассемблер.

Если вы:

gcc -c file.c

Постараюсь собрать и собрать file.c в результате file.o если это успехи.

Если вы:

gcc file.c

будет пытаться собрать, собрать, и ссылку file.c в результате a.out, если он успехи.

+0

Yup запускается через компилятор и все. Спасибо! – user3078633

Смежные вопросы