1

是否可以使用 Visual Studio 2010 编译 libexif?我一直在尝试这样做,并且遇到了一大堆问题。我找不到任何关于之前是否有人成功完成此操作的信息。我知道我可以使用 MinGW 编译库,但我需要使用 Visual Studio 编译它,然后需要从 Visual C++ 应用程序链接到它。这可能吗?

4

2 回答 2

1

回答你的问题:的,这是可能的......但这有点像黑客。Libexif 使用 MSVC 选择不实现的功能。请参阅下面我的工作示例 VS2010 项目(如果您不喜欢下载文件,请跳到我对需要更改的内容的解释以使其在下面工作):

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

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

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

  • Libexif 在 VS 中未定义的代码中广泛使用 snprintf(参见此处

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

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

  • 有一个随机的无符号静态 *需要从 .c 文件移动到 .h 文件,因为 VS 中的 C 不允许您以它们尝试执行的特定方式在函数内部创建新变量。

于 2015-06-09T12:08:57.773 回答
0

阅读“readme-win32.txt”文件。建议是:

以某种方式破解自己的构建系统。
这似乎是 Windows 的做事方式。

不要抱太大希望。*nix 的做事方式是需要先运行的配置脚本。它自动生成源文件以将库与 *nix 的特定风格结合起来。配置脚本几乎是半兆字节。实际 .c 文件中的代码是实际 .c 文件的三倍 :) 如果没有 MinGW,您将无法合理地使其正常工作,因此您可以执行脚本。完成此操作后,您就可以使用 VS 解决方案更好地解决问题。只要它不使用过多的 C99 特定语法。

于 2012-07-30T19:55:03.913 回答