exiflib 与 MSVC++

发布于 2024-10-11 08:03:13 字数 186 浏览 2 评论 0原文

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

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

任何帮助将不胜感激。

I'm new to exiflib. I have downloaded the exiflib source file (libexif-0.6.20.zip), and included in my VC++ project. When I tried to build, it produces some linker errors,

unresolved external symbol _exif_entry_get_value, symbol _exif_format_get_name ..

Any help will be greatly appreciated..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绅刃 2024-10-18 08:03:13

在 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 for C 中,仅限 C++(请参阅

  • Libexif 使用 VS 中未定义的 snprintf (参见 此处

  • 您需要自己创建 config.h,无需 ./configure 命令来帮助您。您可以通读该脚本,但其中大部分内容对于 Windows VS2010 来说没有意义。

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

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

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

To get libexif compiling in MSVC++ is a bit of a hack job. It uses functions that MSVC has chosen not to implement. See my working example VS2010 project below (if you don't like downloading files then skip to my explanation of what needed changing to get it to work below):

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

To elaborate, the issues that needed a "hack" (as hinted in the LibExif readme-win32.txt documentation) are:

  • Libexif uses inline in several places which is not defined in VS for C, only C++ (see this)

  • Libexif uses snprintf which is not defined in VS (see here)

  • You need to create the config.h yourself without a ./configure command to help you. You could read through the script but most of it doesn't make sense for Windows VS2010.

  • You will need to define GETTEXT_PACKAGE because it's probably setup in the configure file. I just choose UTF-8, whether that is correct or not I'm not sure.

  • There was a random unsigned static * that needed to be moved from a .c file to the .h file as C in VS doesn't allow you to create new variables inside functions in the particular way they were trying to do.

Once you have fixed the above issues your unresolved external symbols issues should disappear.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文