Включая библиотеки C++

Как правильно включить библиотеки в C++? Я привык делать стандартные библиотеки на C++ и свои собственные файлы .h.

Я пытаюсь включить wxWidgets или GTK+ в плагин code::blocks и/или netbeans C/C++. Я включил ВСЕ библиотеки, но постоянно получаю ошибки, такие как файл не найден, когда он явно включен!

Одна ошибка: test1.cpp:1:24: wx/msw/wx.rc: No such file or directory : Да, библиотека файлов .h включена; что мне не хватает?

Нужно ли мне импортировать и другие вещи? Есть ли учебник для этого? Очевидно, мой плохой учебник не подготовил меня к этому.


person Community    schedule 15.05.2010    source источник
comment
В защиту автора вашего учебника, я не думаю, что это его/ее работа, чтобы рассказать вам, как настроить каждый известный компилятор... если только это не учебник по сборке wxWidgets и GTK+ с gcc за 60 м или меньше!.   -  person Stephen    schedule 15.05.2010
comment
Нет, но я ожидаю общей информации о том, где искать.   -  person    schedule 15.05.2010
comment
Вы действительно создали библиотеку wxWidgets?   -  person UncleBens    schedule 15.05.2010


Ответы (3)


Во-первых, заголовочные файлы — это не то же самое, что библиотеки. Заголовок — это текстовый файл C++, содержащий объявления вещей, а библиотека — это контейнер для скомпилированного двоичного кода.

Когда вы #include заголовочный файл, компилятор/IDE должны знать, где его найти. Обычно существует параметр IDE, который указывает компилятору, где искать, или вы можете сделать это из командной строки, обычно используя ключ -I. Мне кажется, что вы не настроили путь для поиска файлов заголовков в своей среде IDE.

person Community    schedule 15.05.2010
comment
Я добавил пути к библиотекам. Нужно ли что-то делать с линкером? - person ; 15.05.2010
comment
@ m00st Обычно я просто добавляю библиотеки непосредственно в проект, а не использую путь к библиотеке. - person ; 15.05.2010
comment
Ах, да? Как насчет библиотек только для заголовков? ;) - person Inverse; 15.05.2010

Это означает, что test.cpp включает "wx/msw/wx.rc", но ваш компилятор не может найти этот файл. Как это исправить, зависит от вашего компилятора, но вам нужно найти, где установлен wxwidgets, и добавить его в «Включить пути», чтобы ваш компилятор знал, где его искать. Вы также можете указать более полный путь к нему в директиве include.

Если файлы находятся в том же каталоге, что и test1.cpp, возможно, вы используете неправильный тип включения. #include <...> обычно используется для кода, который находится за пределами каталога, в котором находится ваш проект. #include "..." предназначен для включений внутри каталога вашего проекта (а затем, если они там не найдены, выполните поиск в тех же местах, что и #include <>).

person SoapBox    schedule 15.05.2010

Это довольно старый вопрос, и это на самом деле не ответило на него для меня.

Я переустановил wxwidgets в корневой каталог, поскольку кто-то предположил, что часть проблемы может быть в каталоге с пробелом в имени.

Затем я зашел в проект > параметры сборки > каталоги поиска и удалил все записи, указывающие на исходную установку.

И это решило проблему

person Steve    schedule 26.02.2012