Строительство & amp; Связывание FreeImage с Visual Studio Express 2013

У меня много проблем с привязкой моего проекта к библиотеке FreeImage с VSE 2013

Я следовал за этим ответом для VS2010 безрезультатно: Связать FreeImage как статическую библиотеку в VS2010?

Я получаю ошибки LNK2019 при вызове функций FreeImage.

Я связал библиотеку так же, как и любую библиотеку. Ниже приведены следующие шаги, которые я сделал:

  1. Загрузите FreeImage Source.

  2. Откройте Решение 2008 (преобразовано в 2013) и измените Генерацию кода на / MDd для всех проектов.

  3. Попытка построить проект, но по какой-то причине функции min / max не были определены, поэтому я включил алгоритм .h в эти файлы, и это остановило эти ошибки.

  4. Попытка построить проект, и я получаю сообщение об ошибке: «Не удалось открыть« afxres.h ». Поэтому я заменил afxres.h на windows.h, как это было предложено в другой теме».

  5. Построил проект -> успех

  6. Скопировал Fresh FreeImaged.lib в мой проект

    • Добавлен каталог в «Дополнительные каталоги библиотек»
    • Добавлен FreeImaged.lib в Дополнительные зависимости под компоновщиком
  7. Скопировал FreeImaged.dll в мою папку отладки, где строится .exe

  8. Добавлен FreeImage.h в проект

  9. Добавлена ​​#define FREEIMAGE_LIB перед включением заголовка

  10. Попытка построить мой проект -> LNK2019s везде.

Если бы кто-нибудь смог собрать FreeImage на VS2013 и мог бы поделиться тем, как он это сделал, я был бы очень признателен, или если у кого-то есть какие-либо предложения.

1

Решение

Причина ваших неприятностей в том, что в 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
3

Другие решения

Я смог заставить это работать, зайдя в Configuration Manager, сняв флажок FreeImage и проверив FreeImageLib при сборке. Также отключение оптимизации всей программы, кажется, делает размер двоичного файла более нормальным и избавляет от предупреждений при компоновке.

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

0

версия: 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)
  • PS0: я просто добавляю новую запись, чтобы включить каталоги и библиотеки
    Каталоги и FreeImage.lib для Linker-> ввода в Visual Studio без перестройки библиотеки FreeImage
    🙂
  • PS1: ошибка LNK2019 произошла, когда я добавил опцию FreeImage / Dist / x64
    ; ((понятия не имел об этом)

может это поможет 🙂

0
По вопросам рекламы [email protected]