2014-01-23 2 views
0

Я хочу включить файл заголовка. Я работаю в среде C++ (C++ 11, ОС Windows, Netbeans 7.3.1 IDE, коллекция инструментов Cygwin_4.x). Я не знаю, как настроить среду/IDE (я сделал это 6 месяцев назад). Я также не понимаю основы процесса сборки C++ или связанные с Cygwin проблемы, поэтому мне, возможно, придется заполнить пробелы некоторыми другими ссылками/документацией (на что конкретно, я не уверен).Нет такого файла (заголовочный файл) error

Моя конечная цель - включить заголовочные файлы с использованием синтаксиса, который не требует полного пути к файлу. Я хочу написать что-то немногословен, как:

#include "src\stuff\blah.h" //or even better: #include "blah.h" 

Единственный способ, которым я могу получить программу для компиляции у всех есть, используя полный путь к файлу, например:

#include "C:\NetBeansProjects\Project1\src\stuff\blah.h" 

И, я могу только компилируйте один раз с использованием полного пути. Если я попытаюсь перестроить, он будет бомбить с ошибкой *** multiple target patterns. Stop.. Возможны обходные пути для этой ошибки; те, которые являются либо 1) удалением папок build и dist между каждой перестройкой (yikes?) или 2) following this 16 step setup process.

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

+1

Компилятор, скорее всего, ищет включенные файлы, начиная с файла, который компилируется. Исходный код, который вы пытаетесь скомпилировать в «src»? Если это так, include должен быть '#include" stuff/blah.h "'. Также обратите внимание на косые черты. – DanielKO

+0

Я никогда не использовал netbeans, но был бы шокирован, если бы не было способа добавить каталоги к пути поиска include. Если многие (или все) ваши включенные файлы находятся в одном месте, это путь. – jerry

+0

@ DanielKO - Все (все .cc и .h файлы) в проекте находятся под каталогом «src», но затем они сортируются с использованием подкаталогов (например, файлов).В этом конкретном случае у меня есть файл в одном подкаталоге (src/stuff), который пытается включить файл из другого подкаталога (src/morestuff). Кроме того, косые черты не помогают (ошибка = 'stuff/blah.h - нет такого файла или каталога'). – nairware

ответ

1

DanielKO для этого ответа.

В моем случае, я был в состоянии включить с синтаксисом:

#include "../stuff/blah.h" 

У меня не было ничего настраивать в разделе «Код Assistance» для компилятора C++.

Весь мой код находится под «src» в качестве родительского каталога в моем проекте NetBeans. Кажется, что полный путь к файлу не требуется, и единственным каталогом, на который нужно ссылаться, является нижний подкаталог уровня (в моем случае «материал»).

1

В NetBeans я добавил путь к списку библиотек:

  1. Перейти к свойства-> Выбрать C++ -> Выбрать «включают библиотеки» -> «Добавить» Сейчас: Добавить путь папки проекта с опцией «абсолютных»

  2. Перейти к свойства-> Выбрать C++ -> Выбрать «Дополнительные библиотеки каталоги» -> «Добавить» Сейчас: Добавить путь к папке проекта с опцией «абсолютный»

Мне очень не понятно, почему проект не распознает «собственные» файлы заголовков.

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