Как связать библиотеку с Code :: Blocks? - PullRequest
18 голосов
/ 03 мая 2011

Руководство по C ++ GUI: неопределенная ссылка на TextOut

У меня та же проблема, но я новичок в программировании и Code :: Blocks, и я хочу использовать библиотеку GDI32. Как я могу установить его? Я очень запутался, потому что могу использовать заголовок windows.h, но некоторые функции, такие как TextOut, недоступны.

Ответы [ 3 ]

45 голосов
/ 04 мая 2011

Библиотека gdi32 уже установлена ​​на вашем компьютере, несколько программ будут работать без нее.Ваш компилятор (если установлен правильно) обычно поставляется с библиотекой импорта, которая используется компоновщиком для связи между вашей программой и файлом в системе.(В маловероятном случае, если ваш компилятор не поставляется с библиотеками импорта для системных библиотек, вам необходимо скачать SDK платформы Microsoft Windows.)

Для связи с gdi32:

enter image description here

Это будет надежно работать с MinGW-gcc для всех системных библиотек ( должно работать , если вы используете любой другой компилятор, но я не могу говорить о вещах, которые я не пробовал).Вы также можете написать полное имя библиотеки, но написание libgdi32.a не имеет никакого преимущества перед gdi32, кроме того, что требует больше работы с типами.
Если оно по какой-то причине работает , а не , возможно, вам придетсяукажите другое имя (например, библиотека называется gdi32.lib для MSVC).

Для библиотек в некоторых нечетных местах или подпапках проекта вам нужно будет указать правильное имя пути (нажмите "...кнопка для выбора файла).

0 голосов
/ 25 января 2015

Чтобы повторить процесс, необходимый для использования библиотеки: Один раз для каждой библиотеки:

1) Получить библиотеку.Загрузите его с веб-сайта или через менеджер пакетов.

2) Установите библиотеку.Распакуйте его в каталог или установите через менеджер пакетов.

3) Сообщите компилятору, где искать заголовочные файлы для библиотеки.

4) Сообщите компоновщику, гдечтобы найти файл (ы) библиотеки для библиотеки.

Один раз для проекта:

5) Сообщите компоновщику, какие статические файлы или файлы библиотеки импорта следует связать.6) # Включите заголовочные файлы библиотеки в вашу программу.7) Убедитесь, что программа знает, где найти любые динамические библиотеки.

Шаги 1 и 2 - получение и установка библиотеки Загрузите и установите библиотеку на свой жесткий диск.См. Учебник по статическим и динамическим библиотекам для получения дополнительной информации об этом шаге.Шаги 3 и 4. - Сообщите компилятору, где искать заголовки и файлы библиотеки. Мы собираемся сделать это на глобальном уровне, чтобы библиотека была доступна для всех наших проектов.Следовательно, следующие шаги необходимо выполнить только один раз для каждой библиотеки.А) Зайдите в «Меню настроек» и выберите «Компилятор».Б) Перейдите на вкладку «Каталоги».Вкладка компилятор уже будет выбрана для вас.C) Нажмите кнопку «Добавить» и добавьте путь к файлам .h для библиотеки.Если вы используете Linux и установили библиотеку через менеджер пакетов, убедитесь, что / usr / include указан здесь.D) Перейдите на вкладку «Линкер».Нажмите кнопку «Добавить» и добавьте путь к .lib-файлам библиотеки.Если вы работаете в Linux и установили библиотеку через менеджер пакетов, убедитесь, что / usr / lib указан здесь.E) Нажмите кнопку «ОК».Шаг 5 - Сообщите компоновщику, какие библиотеки использует ваша программа. На шаге 5 нам нужно добавить файлы библиотеки из библиотеки в наш проект.Мы делаем это на индивидуальной основе проекта.A) Щелкните правой кнопкой мыши имя проекта, выделенное жирным шрифтом в рабочей области по умолчанию (возможно, «Консольное приложение», если вы не изменили его).Выберите «Опции сборки» из меню.Б) Нажмите вкладку компоновщика.В окне «Связать библиотеки» нажмите кнопку «Добавить» и добавьте библиотеку, которую вы хотите использовать в своем проекте.C) Нажмите кнопку «ОК»

Шаги 6 и 7 - #include заголовочные файлы и убедитесь, что проект может найти DLL. Просто # включите заголовочный файл (ы) из библиотеки вашего проекта.

Источник: http://www.learncpp.com/cpp-tutorial/a3-using-libraries-with-codeblocks/

0 голосов
/ 04 мая 2011

Предположительно, вы использовали Code :: Blocks для создания проекта консольного приложения . Такой проект не связан с GDI, потому что консольные приложения обычно не предназначены для графики, а TextOut - это графическая функция. Если вы хотите использовать функции GDI, вы должны создать Win32 Gui Project , который будет настроен для связи в GDI для вас.

...