Произошла ошибка при компиляции библиотеки FreeImage в качестве статической ссылки? - PullRequest
0 голосов
/ 10 июня 2018

Я пытаюсь скомпилировать библиотеку FreeImage v3.17.0 , используя Visual Studio 2015 для получения файла статической библиотеки, но есть некоторые проблемы.

Пакет библиотеки поставляется следующим образом:

Я использовал файл FreeImage.2013 для компиляции библиотеки и после компиляциисделано, я нашел этот результат Build: 16 succeeded, 4 failed, 0 up-to-date, 0 skipped.
сама библиотека FreeImage не скомпилирована, но скомпилированы другие сторонние библиотеки, но появляется ошибка: Error C1189 #error: Macro definition of snprintf conflicts with Standard Library function declaration ..\include\10.0.10240.0\ucrt\stdio.h

Какрешить эту проблему?

1 Ответ

0 голосов
/ 10 июня 2018

Я нашел решение в другой проблеме, аналогичной моей проблеме, но в другой теме. Взгляните .

Объясните проблему:

До настоящего времени многие библиотеки и программы использовали функцию snprintf(), определяя ее как _snprintf(), поскольку _snprintf() был

#define snprintf _snprintf

snprintf() стало известно в Visual Studio 2015 (v140).Итак, snprintf() теперь официально поддерживается, мы никогда не должны его определять.
Выполнение этого затмит новую функцию snprintf(), определенную в stdio.h.

Решение:
Найдите эту строку #define snprintf _snprintf во всех файлах проектов и сделайте ее комментарием (поставьте // в начале строки).

Пример:

...