Проблемы с импортом библиотек в мой 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 ответа

Решение

Это распространенное заблуждение, что текущая используемая среда разработки отвечает за получение ошибок, как указано в вопросе.
Смотри например

Проблема почти никогда не связана с используемой в настоящее время 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

В противном случае это окно конфигурации:

Другие вопросы по тегам