将FreeImage库编译为静态链接时发生错误?

时间:2018-06-10 13:12:14

标签: c++ compiler-errors static-linking

我尝试使用Visual Studio 2015编译FreeImage v3.17.0库来获取静态库文件,但是存在一些问题。

图书馆包如下:

我使用FreeImage.2013文件来编译库,编译完成后我发现了这个结果Build: 16 succeeded, 4 failed, 0 up-to-date, 0 skipped
FreeImage库本身没有编译,但其他第三方库已编译,但出现错误:Error C1189 #error: Macro definition of snprintf conflicts with Standard Library function declaration ..\include\10.0.10240.0\ucrt\stdio.h

如何解决该问题?

1 个答案:

答案 0 :(得分:0)

我发现另一个问题的解决方案类似于我的问题但是在另一个主题中。 Take a look

解释问题:

  

到目前为止,许多图书馆和程序都使用snprintf()功能   将其定义为_snprintf(),因为支持_snprintf()

#define snprintf _snprintf
     

snprintf()在2015年视觉工作室(v140)中得到认可。所以,   snprintf()现在得到官方支持,我们永远不应该定义它   这样做会掩盖stdio.h中定义的新snprintf()函数。

解决方案:
在所有项目文件中搜索此行#define snprintf _snprintf并将其作为注释(将//放在行的开头)。

一个例子: