Проблемы с импортом библиотек в мой C++ проект, как это исправить?
Я использую <XZY>
IDE для компиляции моей программы, и возникли проблемы с импортом / интеграцией с ней конкретной библиотеки.
Я получаю сообщения об ошибках, такие как
fatal error: 3rdPartyLib.h: No such file or directory
для
#include "3rdPartyLib.h"
заявление
ld.exe: cannot find `lib3rdParty.a`
для уточнения
3rdParty
в дополнительных библиотеках
По крайней мере, я получил сообщение об ошибке вроде
undefined reference to `lib3rdParty::foo()'
Что я могу сделать, чтобы это исправить?
2 ответа
Это распространенное заблуждение, что текущая используемая среда разработки отвечает за получение ошибок, как указано в вопросе.
Смотри например
- C++ lib в двух одинаковых проектах, один может работать, а другой нет
- Проблема, связывающая библиотеки libxml ++ и glib с IDE CodeBlocks для Windows C++
- ...
Проблема почти никогда не связана с используемой в настоящее время IDE.
В большинстве случаев решение сводится к тому, чтобы предоставить фактическому компилятору / компоновщику цепочки инструментов соответствующие пути для поиска включенных заголовков, которые должны быть связаны библиотеками.
Один из основных применимых ответов для проблем, связанных с компоновщиком:
Большинство распространенных сред разработки предоставляют функции для настройки этого для конкретного проекта. Вот несколько образцов
Затмение-CDT
Включить параметры пути:
Библиотека и настройки пути поиска библиотеки
Visual Studio 2013
Кодовые блоки
**DEV C++ (Кровопролитие C++)
Как из их FAQ:
9. Как я могу использовать библиотеку OpenGL и другие?
Все библиотеки, которые поставляются с Mingw, находятся в каталоге Lib. Все они названы следующим образом:
lib*.a
Чтобы связать библиотеку с вашим проектом, просто добавьте в Опции проекта, Дополнительные файлы опций:-lopengl32
Это для включенияlibopengl32.a
библиотека. Чтобы добавить любую другую библиотеку, просто следуйте тому же синтаксису: Введите-l
(L в нижнем регистре) плюс базовое имя библиотеки (имя файла безlib
и.a
расширение).
Вы также можете рассмотреть вопрос о -L
есть возможность добавить каталоги для поиска библиотек.
Qt Creator
Чтобы добавить пути включения, вы должны открыть файл.pro, а затем добавить каталоги в INCLUDEPATH
переменная. Эти пути разделены пробелами. Ссылка может быть найдена здесь.
Если ни один из вышеприведенных примеров не подходит для вашей фактически используемой IDE/toolchain, я надеюсь, что вы сможете получить смысл абстракции:
Вопрос в том, как обеспечить компиляцию / связывание опций с вашей реальной цепочкой инструментов. IDE, используемая для настройки контекста, является второстепенной.
Для затмения я использую pkg-config
плагин, где это возможно:
https://marketplace.eclipse.org/content/pkg-config-support-eclipse-cdt
В противном случае это окно конфигурации: