exiflib с MSVC ++ - PullRequest
       72

exiflib с MSVC ++

1 голос
/ 10 января 2011

Я новичок в exiflib. Я скачал исходный файл exiflib (libexif-0.6.20.zip) и включил его в мой проект VC ++. Когда я пытался собрать, он выдает некоторые ошибки компоновщика,

неразрешенный внешний символ _exif_entry_get_value, символ _exif_format_get_name ..

Любая помощь будет принята с благодарностью ..

1 Ответ

1 голос
/ 10 июня 2015

Получить компиляцию libexif в MSVC ++ - дело хакерское. Он использует функции, которые MSVC решил не реализовывать. См. Мой рабочий пример проекта VS2010 ниже (если вам не нравится скачивать файлы, перейдите к моему объяснению того, что нужно изменить, чтобы заставить его работать ниже):

https://www.dropbox.com/s/l6wowl8pouux01a/libexif-0.6.21_CompiledInVS2010%2BExample.7z?dl=0

Чтобы уточнить, проблемы, которые требовали "взлома" (как указано в документации по readme-win32.txt в LibExif):

  • Libexif использует inline в нескольких местах, которые не определены в VS для C, только C ++ (см. this )

  • Libexif использует snprintf, который не определен в VS (см. здесь )

  • Вам нужно создать config.h самостоятельно, без помощи команды ./configure. Вы можете прочитать сценарий, но большинство из них не имеет смысла для Windows VS2010.

  • Вам необходимо определить GETTEXT_PACKAGE, потому что он, вероятно, настроен в файле конфигурации. Я просто выбираю UTF-8, верно это или нет, я не уверен.

  • Произошло случайное статическое без знака *, которое необходимо было переместить из файла .c в файл .h, так как C в VS не позволяет создавать новые переменные внутри функций в конкретный способ, которым они пытались сделать.

Как только вы исправите вышеуказанные проблемы, ваши нерешенные проблемы с внешними символами должны исчезнуть.

...