У меня много проблем с привязкой моего проекта к библиотеке FreeImage с VSE 2013
Я следовал за этим ответом для VS2010 безрезультатно: Связать FreeImage как статическую библиотеку в VS2010?
Я получаю ошибки LNK2019 при вызове функций FreeImage.
Я связал библиотеку так же, как и любую библиотеку. Ниже приведены следующие шаги, которые я сделал:
Загрузите FreeImage Source.
Откройте Решение 2008 (преобразовано в 2013) и измените Генерацию кода на / MDd для всех проектов.
Попытка построить проект, но по какой-то причине функции min / max не были определены, поэтому я включил алгоритм .h в эти файлы, и это остановило эти ошибки.
Попытка построить проект, и я получаю сообщение об ошибке: «Не удалось открыть« afxres.h ». Поэтому я заменил afxres.h на windows.h, как это было предложено в другой теме».
Построил проект -> успех
Скопировал Fresh FreeImaged.lib в мой проект
Скопировал FreeImaged.dll в мою папку отладки, где строится .exe
Добавлен FreeImage.h в проект
Добавлена #define FREEIMAGE_LIB перед включением заголовка
Попытка построить мой проект -> LNK2019s везде.
Если бы кто-нибудь смог собрать FreeImage на VS2013 и мог бы поделиться тем, как он это сделал, я был бы очень признателен, или если у кого-то есть какие-либо предложения.
Причина ваших неприятностей в том, что в Visual Studio 2013 произошли серьезные изменения (как указано Microsoft) были введены в связи с соответствием C ++ 11.
Один включает это для того, чтобы использовать станд :: мин () / станд :: макс (), теперь вы должны включить заголовок . Это также касается FreeImage. К сожалению, до версии 3.6.1 (самой последней на сегодняшний день) это еще не было исправлено.
это Сообщение блога объясняет, что вам нужно сделать, чтобы получить его для компиляции. Самая важная часть:
В частности, вам нужно будет добавить
include <algorithm>
в следующие файлы:
Source/OpenEXR/IlmImf/ImfOutputFile.cpp
Source/OpenEXR/IlmImf/ImfScanLineInputFile.cpp
Source/OpenEXR/IlmImf/ImfTiledMisc.cpp
Source/OpenEXR/IlmImf/ImfTiledOutputFile.cpp
Source/OpenEXR/Imath/ImathMatrixAlgo.cpp
Я смог заставить это работать, зайдя в Configuration Manager, сняв флажок FreeImage и проверив FreeImageLib при сборке. Также отключение оптимизации всей программы, кажется, делает размер двоичного файла более нормальным и избавляет от предупреждений при компоновке.
Я знаю, что этому вопросу больше года. Просто предоставив ответ любому гуглу, который ищет эту проблему, как я.
версия: FreeImage3170Win32Win64.zip
os.env .: win7 64bit visualstudio ULTIMATE 2013
операция:
1_ just unpacking the zip somewhere
e.g. (D:/library/FreeImage3170Win32Win64/FreeImage)
2_ in C/C++->General->Additional Including Directerories
add (D:/library/FreeImage3170Win32Win64/FreeImage/Dist/x32)
3_ in Linker->General->Additional Library Directerories
add (D:/library/FreeImage3170Win32Win64/FreeImage/Dist/x32)
4_ in Linker->Input->Additional Dependency
add (FreeImage.lib)
может это поможет 🙂