exiflib与MSVC ++

时间:2011-01-10 06:45:16

标签: visual-c++ linker libexif

我是exiflib的新手。我已经下载了exiflib源文件(libexif-0.6.20.zip),并包含在我的VC ++项目中。当我尝试构建时,会产生一些链接器错误,

未解析的外部符号_exif_entry_get_value,符号_exif_format_get_name ..

任何帮助将不胜感激..

1 个答案:

答案 0 :(得分:1)

要在MSVC ++中进行libexif编译是一项黑客工作。它使用MSVC选择不实现的功能。请参阅下面的我的工作示例VS2010项目(如果您不喜欢下载文件,请跳过我的说明,了解需要更改以使其在下面工作):

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

详细说明,需要“hack”的问题(如LibExif readme-win32.txt文档中所示)是:

  • Libexif在几个地方使用内联,这在VS for C中没有定义,只有C ++(参见this

  • Libexif使用未在VS中定义的snprintf(参见here

  • 您需要在没有./configure命令的情况下自行创建config.h来帮助您。您可以阅读脚本,但大部分内容对Windows VS2010没有意义。

  • 您需要定义GETTEXT_PACKAGE,因为它可能是在配置文件中设置的。我只选择UTF-8,无论是否正确,我不确定。

  • 随机 unsigned static * 需要从.c文件移动到.h文件,因为VS中的C不允许您在函数内创建新变量以他们试图做的特定方式。

解决了上述问题后,您未解决的外部符号问题就会消失。