Попытка скомпилировать приложение на C , файл заголовка не найден

#c #netbeans #mingw

#c #netbeans #mingw

Вопрос:

Я пытаюсь скомпилировать приложение на C с помощью Netbeans. Это первое приложение на C , которое я создал за последнее время. К моему удивлению, поскольку я настроил среду и настроил все, включая Netbeans, Mingw и Msys; проблема, с которой я столкнулся сейчас при попытке компиляции, — это ошибка file note found . В приведенном ниже сообщении об ошибке указано, что его нет, но я могу легко перейти к нему в моей файловой системе Windows, а также в Netbeans, поскольку он является частью проекта. Я не сомневаюсь, что есть какой-то простой шаг, который я упускаю из виду. Файл является частью Boost API, и его корневая папка находится в папке моего проекта, который, в свою очередь, включен в качестве исходной папки для моего проекта (в разделе Параметры).

 g      -c -g -MMD -MP -MF "build/Debug/MinGW-Windows/addrman.o.d" -o build/Debug/MinGW-        Windows/addrman.o addrman.cpp
In file included from netbase.h:10:0,
             from addrman.h:7,
             from addrman.cpp:5:
serialize.h:19:48: fatal error: boost/type_traits/is_fundamental.hpp: No such file or      directory
 #include <boost/type_traits/is_fundamental.hpp>
  

Является ли это описание и сообщение об ошибке достаточной информацией? Заранее спасибо за любую помощь.
^

Комментарии:

1. Нигде вы не упомянули, какой у include вас путь поиска. Не имеет значения, можете ли вы найти его на своем компьютере — компилятор также должен его найти, и он не сможет этого сделать, если в include пути поиска не указано, где boost расположены заголовки.

2. Какую конкретную библиотеку Boost вы пытаетесь использовать?

3. Версия Boost 1.55.

4. Boost — это набор из десятков независимых библиотек…

Ответ №1:

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

Если у вас есть каталог boost, скажем, C:librariesboost тогда вам нужно будет добавить следующее в строку компиляции -IC:libraries (и я бы посоветовал поместить boost в такое место, чтобы вы могли легко использовать его в нескольких проектах).

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

Комментарии:

1. Я попытался использовать «дополнительные параметры [командной строки]» в Netbeans: -IC: local boost_1_55_0 и это не сработало.

Ответ №2:

Вы должны сообщить NetBeans о каталоге Boost include. Откройте всплывающее окно свойств проекта, перейдите в раздел «Сборка -> Компилятор C » и добавьте каталог в строку «Включить каталоги». Это всплывающее окно должно выглядеть следующим образом:

введите описание изображения здесь