2015-02-12 2 views
2

Я создал заголовок и источник, но я не знаю, как их связать. Я просмотрел его в Интернете, но предоставленные команды не работали (или меня здесь не было бы :)).header.h: Нет такого файла или каталога, даже если источник и заголовок находятся в одном каталоге

Для его компиляции (если вы используете GCC):

Заголовок:

$ gcc -c whatever.h -o whatever.o 

Источник:

$ gcc -c sample.c -o sample.o 

Чтобы связать файлы для создания исполняемого файла:

$ gcc sample.o whatever.o -o sample 

Что я сделал o неправильно. Я использую geany для записи (ошибка компиляции здесь), но команды выполняются на терминале в том же каталоге. может ли кто-нибудь дать мне команды сборки для geany, поэтому всякий раз, когда я хочу включить заголовок, я могу просто скомпилировать и запустить?

+0

Почему бы вам не использовать '#include "header.h"' в 'sample.c'? –

+0

да я включил его – BRHSM

+0

Тогда зачем вы его компилируете и связываете? :-) –

ответ

3

Хорошо и правильно было бы

sample.c

#include "header.h" 

и компилировать

gcc sample.c -o ob 
+0

Как бы это было в geany (команды сборки и компиляции). что было бы проще – BRHSM

+0

что стоят f2.c и f1.c? в командах построения geany все это похоже на «% f» и т. д. – BRHSM

+0

@CoderGuy Позвольте мне не путать вас, пожалуйста, включите заголовок в .c файл компилировать и запускать. – Gopi

2

Thumb Правило:

  • заголовочные файлы [.h] для #include ing
  • исходные файлы [.c] предназначены для компиляции и связывания для создания исполняемого файла.

После того как вы #include д ваш файл заголовка в файле .c, нет никакой необходимости, чтобы скомпилировать файл заголовка и производить объектный файл.

FYI, вы можете проверить эффект #include -ную заголовочный файл, запустив

gcc -E sample.c 

и надеюсь, что вы поймете, почему вы не нужно собрать и связать файл заголовка отдельно.


EDIT:

, если у вас есть sample.c и whatever.h, производить и запускать двоичный файл, просто сделать

  • #include "whatever.h" в верхней части sample.c

  • gcc -o sample sample.c

  • ./sample

+0

Знаете ли вы команды сборки для geany? – BRHSM

+0

@CoderGuy Извините, нет. Но как это связано с этим? –

+0

вот что я задаю в вопросе ... – BRHSM

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