带有 MSVC++ 的 exiflib
Posted
技术标签:
【中文标题】带有 MSVC++ 的 exiflib【英文标题】:exiflib with MSVC++ 【发布时间】:2011-01-10 06:45:15 【问题描述】:我是 exiflib 的新手。我已经下载了 exiflib 源文件 (libexif-0.6.20.zip),并包含在我的 VC++ 项目中。当我尝试构建时,它会产生一些链接器错误,
未解析的外部符号_exif_entry_get_value,符号_exif_format_get_name ..
任何帮助将不胜感激..
【问题讨论】:
【参考方案1】:在 MSVC++ 中编译 libexif 有点麻烦。它使用 MSVC 选择不实现的功能。请参阅下面我的工作示例 VS2010 项目(如果您不喜欢下载文件,请跳到我对需要更改的内容的说明以使其工作):
https://www.dropbox.com/s/l6wowl8pouux01a/libexif-0.6.21_CompiledInVS2010%2BExample.7z?dl=0
详细来说,需要“破解”的问题(如 LibExif readme-win32.txt 文档中所暗示的)是:
Libexif 在几个地方使用 inline,这在 VS 中没有为 C 定义,只有 C++(参见 this)
Libexif 使用 VS 中未定义的 snprintf(参见 here)
您需要自己创建 config.h,而不需要 ./configure 命令来帮助您。您可以通读该脚本,但其中大部分内容对于 Windows VS2010 没有意义。
您需要定义GETTEXT_PACKAGE,因为它可能已在配置文件中设置。我只是选择UTF-8,是否正确我不确定。
有一个随机的 unsigned static * 需要从 .c 文件移动到 .h 文件,因为 VS 中的 C 不允许您在函数内创建新变量以他们试图做的特定方式。
一旦您解决了上述问题,您未解决的外部符号问题就会消失。
【讨论】:
以上是关于带有 MSVC++ 的 exiflib的主要内容,如果未能解决你的问题,请参考以下文章
Qt安装显示:MSVC2015 编译器带有感叹号,及解决办法