2012-04-12 2 views
3

У меня есть некоторые пользовательские файлы .h, помещенные под/usr/include, но в каталог (/ usr/include/itsmag1c), и я пытаюсь их включить в моем файле C. Я предполагаю, что, поскольку я используюКак добавить пользовательские файлы .h в/usr/include

#include "filename.h"; 

файлов в одном каталоге, и я хотел бы использовать угловые скобки, включая, например, файл math.h или stdio.h. Правильно ли я предполагаю, что я буду использовать угловые скобки для включения моих собственных файлов заголовков? Если это так, моя программа не скомпилируется, я получаю сообщение об ошибке, что входящие файлы не могут быть найдены. Может ли кто-нибудь указать мне, как я буду включать эти файлы, или было бы лучше, если бы они были в том же каталоге, что и моя программа?

ответ

4

Два варианта:

  1. Использование #include <itsmagic1c/filename.h>

  2. Используйте #include <filename.h>, как и раньше, но добавить -I переключатель.

подталкивания и т.д. используйте метод 1. (который хорошо работает, если у вас есть подталкивание установлено в местах системы, как если бы на достаточно стандартную коробку Linux с разумным управлением пакетами).

Метод 2. это тоже хорошо, но больше работы в системе сборки, Makefiles и т.д.

+0

Первый обеспечивает некоторую изоляцию между компонентами, так что это лучший выбор. – ergosys

+0

, если я добавлю папку в '/ usr/include /', мне нужно перезагрузить, чтобы найти 'gcc' ее? – Mrlenny

+0

после перезагрузки он работал – Mrlenny

2

Обычно вы бы поставить свои собственные заголовки в том же каталоге или в подкаталоге. В один и тот же каталог включена работа с "". Для скобка включает, если вы используете GCC, вы можете передать дополнительные включают каталоги с

-Irelativedir 

или

-I/usr/local/yourpath. 
+0

У меня есть они в каталоге/usr/local, потому что более чем одна из моих программ использует файлы .h, и они упакованы со всеми моими программами, но только копируются, если они еще не присутствуют. – Matthew

+0

Параметр '-I' поддерживается tcc, clang и icc. Компиляторы Microsoft используют '/ I'. –

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