c++ - Visual Studio 2015 - 错误 C2375 : 'snprintf' : redefinition; different linkage

标签 c++ visual-studio

我在 Visual Studio 2015 中编译 C++ 项目时遇到上述错误,但在 2013 中编译时没有问题。该错误来自 OpenOfice SDK 中的头文件 - snprintf.h。这是导致错误的代码行:

__declspec(dllimport) int __cdecl snprintf(char *buffer, size_t count, const char *format, ...);

我相信这是因为 VC 2015 已经定义了 snprintf。 See this page for more info

该页面上的解决方案实际上与注释掉这一行相同,但对我来说不起作用,因为它会导致项目中出现许多其他错误。另外,正如我所说,这在 Visual Studio 2013 中编译没有问题,所以我想知道是否有其他人遇到过类似的问题并有办法修复此错误。

谢谢。

最佳答案

我找到了一个可能并不理想的解决方案,但它确实允许在 Visual Studio 2015 中构建解决方案而不会出现错误。

在项目属性中,我将“平台工具集”设置为来自 VS 2013 的旧版 v120_xp(VS 2015 提供 v140_xp)。

这远非完美,因为它需要 VS 2013 与 VS 2015 一起安装,显然我无法利用 v140 平台工具集中的任何新功能。

关于c++ - Visual Studio 2015 - 错误 C2375 : 'snprintf' : redefinition; different linkage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36352026/

相关文章:

c++ - WriteFile重叠和fwrite等效

visual-studio-2010 - 我可以在Visual Studio中更改XML注释模板吗?

visual-studio - Visual Studio 命令栏 "Names"

asp.net - 使用 asp.net 按钮启动 html 代码

c# - 如何获取正在运行的进程的 ExitCode

c++ - 用于简单数组创建和 i/o 的 C vs C++ 代码优化

c++ - 自定义弱/强引用指针

c++ - 内联汇编语言

c++ - Clang 找不到 `-fprebuilt-module-path` 的 C++ 模块

c++ - SensorTest.exe 中 0x76F8277C 处的第一次机会异常:Microsoft C++ 异常:Platform::COMException ^ 在内存位置