Я должен использовать gdLibrary (http://www.libgd.org) в приложении C++ для MS Windows XP Prof. SP3 32bit - и я пытаюсь и googleing в течение двух дней без успеха. Кто-нибудь из вас использует libgd с MS VC++ 200x EE?Как использовать/link gdLibrary (libgd) с MS Visual C++ (например, 2008 Express Edition)? Получение ошибок LNK2019
Моей проблема: Он должен компилировать с MS Visual C++ (например, в 2008 Express Edition - фиксированная третье условие стороны) ... но в данный момент компоновщика аварию, с 11 из следующих ошибок: LNK2019
Связывание ... codereate.obj: ошибка LNK2019: не определено внешний символ "_gdImageDestroy" был найден в "общественности: виртуальный __thiscall CodeCreate :: ~ CodeCreate (аннулируются)"
Другие smybols - _gdImageColorExact
, _gdImageCopyResized
и некоторые другие gd-функции. Похоже, что компоновщик VC++ работает неправильно с bgd.lib
, предоставленным пакетом, который я скачал с http://www.libgd.org/releases/gd-latest-win32.zip
.
Что я сделал/пробовал:
- Извлеченные
gd-latest-win32.zip
кc:\users\johndoe\cpp\libgd
. - Defined
c:\users\johndoe\cpp\libgd\lib
ALS дополнительная библиотека DIR (глобальная VC++ установка) - Определено
c:\users\johndoe\cpp\libgd\include
в качестве дополнительного включает в себя DIR (глобальный VC++ настройка) - Определено
c:\users\johndoe\cpp\libgd\include\lib\bgd.lib
в качестве дополнительного линкер \ вход зависимостей (настройка проекта) - Я даже добавил
#pragma comment(lib, "libgd.lib")
в мойcodecreate.h
, чтобы быть на стороне сохранения.
Любые предложения? Что я делаю неправильно (например, я забыл что-то установить)? Есть ли «трюк» для получения совместимого с VC++ 2008 bgd.lib
?
Дополнительные примечания:
- Запуск на Linux/г ++, все работает отлично, никаких предупреждений с
-pedantic -ansi -wAll
. Программа выполняет свою работу, генерирует некоторые штрих-коды. - Это работает при использовании DevC++ для Win32. Поэтому это не проблема Windows, а просто проблема VC++. Для DevC++ я сделал:
- Я просто скачал
http://www.libgd.org/releases/gd-latest-win32.zip
, - экстрагируют его
c:\users\johndoe\cpp\libgd
- добавил
c:\users\johndoe\cpp\libgd\lib\bgd.lib
в качестве дополнительного obbject в настройках линкера-проектов. - определенные
c:\users\johndoe\cpp\libgd\lib
ALS дополнительная библиотека Дира - определенные
c:\users\johndoe\cpp\libgd\include
в качестве дополнительного включает реж - рад какой-то штрих-код вещи
- Я просто скачал
- Если я не могу заставить его работать, я действительно в беде .. . становится действительно отчаянная прямо сейчас :-(
слава богу, кто-то отвечает! :-) Im действительно новый для VC++ (из Linux) - я не думаю, что я ввел в него определение «NODLL» - где искать место? Тем не менее - я пробовал «bgd_a.lib» прямо сейчас ... но он, похоже, не работает, те же ошибки. Возможно, я ошибся во время создания проекта? Я только что создал новый пустой проект, добавил свои файлы * .cpp и * .h через «правый клик \ Добавить ...-> Существующий». Спасибо Спасибо спасибо! – Georg
Щелкните правой кнопкой мыши проект и выберите «Свойства», затем проверьте C/C++ -> Препроцессор -> Определения препроцессора. Проекты по умолчанию должны содержать что-то вроде WIN32; _DEBUG в отладочных сборках. Я думаю, что, может быть, вы можете начать с того, чтобы свести к минимуму файлы, которые вы добавили, например простой main() только с gdImageDestroy (NULL), чтобы увидеть, работает ли это для соединения. – Francis
О, вы создали из "Empty Project"? Тогда я думаю, вам нужно добавить определение WIN32! Я попытался удалить WIN32, а затем получить такое же сообщение об ошибке, как ваше. – Francis