Получение FreeImage для работы с Visual Studio 2010 - PullRequest
2 голосов
/ 10 февраля 2012

Некоторые из посоветовали мне вам не так давно использовать FreeImage в качестве библиотеки для обработки изображений в C ++.

У меня теперь есть некоторые проблемы с тем, чтобы заставить библиотеку работать (все еще относительно новая здесь).

Я попытался загрузить различные плитки vcxproj и sln, и они дали мне пустой проект. Поскольку для этого не предусмотрено никаких инструкций по установке, я отказался от того, чтобы сделать его визуальным студийным решением.

Затем я попробовал старый способ компиляции исходного кода с использованием Makefile, а затем добавил «FreeImage / Source» в компоновщик. Хотя IDE не вызывает никаких красных флажков, когда я вызываю функции, объявленные в FreeImage.h, при компиляции я получил кучу «ошибки LNK2019: неразрешенный внешний символ», как будто функции не существуют. Я подозреваю, что в IDE не удалось найти файлы .cpp, которые определяют указанные функции, но у меня все еще возникает та же проблема, когда я добавляю FreeImage / Source / FreeImage к компоновщику.

Теперь, когда я непосредственно включил некоторые файлы .cpp (например, Plugin.cpp и FreeImage.cpp) для теста, я получаю еще больше неразрешенных внешних ошибок символов, а также таких вещей, как «несовместимая связь DLL» для этого внутри. .. например FreeImage.cpp:

const char * DLL_CALLCONV FreeImage_GetVersion() { static char s_version[16]; sprintf(s_version, "%d.%d.%d", FREEIMAGE_MAJOR_VERSION, FREEIMAGE_MINOR_VERSION, FREEIMAGE_RELEASE_SERIAL); return s_version; }

Итак, я полностью застрял. Что я делаю неправильно? Я чувствовал, что выполнил соответствующие шаги при добавлении библиотечных зависимостей, таких как добавление определенных папок, которые являются непосредственными родителями, в соответствующие файлы .h и .cpp в C / C ++ -> Общие -> Дополнительные включенные каталоги и компоновщик -> Общие -> Добавление библиотечных каталогов.

Будет полезна некоторая помощь!

1 Ответ

3 голосов
/ 17 июля 2012

Использование FreeImage v3.15.3 У меня не было проблем с преобразованием проекта VS2008 в VS2010. Также здание работало как положено. Но когда я связался со статической библиотекой, я получил некоторые неразрешенные внешние данные. Сначала я попробовал разные способы установки / MT / MD-линковки, но это не решило проблему линковки.

Прочитав комментарий новичка, я покопался в freeimage.h. Там я нашел макропереключатель FREEIMAGE_LIB, который управляет соглашениями о вызовах функции. Используйте #define FREEIMAGE_LIB перед включением файла freeimage.h. Таким образом, вы можете легко статическую ссылку на FreeImage.lib

...