Visual Studio 2015中无法解析的外部符号_sprintf和_sscanf
C++: Unresolved external symbol _sprintf and _sscanf in Visual Studio 2015
为了一个研究项目,我正在为一种科学计算语言编写一个c++附加组件。不幸的是,允许用户这样做的库并没有很好地保持最新。
我在XCode中开始这个项目,它在那里构建得很好。后来我不得不搬到PC上,所以我把代码迁移到Visual Studio 2015上。由于这样做,由于以下错误,我无法构建:
LNK2001 : unresolved external symbol _sprintf
LNK2019 : unresolved external symbol _sscanf referenced in function _GetDDouble
LNK2019 : unresolved external symbol _sprintf referenced in function _CheckRunningInMainThread
一个尝试的修复是添加标题#define _CRT_SECURE_NO_WARNINGS
。然而,这a)没有修复错误,b)增加了警告C4005 : '_CRT_SECURE_NO_WARNINGS': macro redefinition
。我假设库已经定义了这个宏,预料到了这个问题。无论如何,这并没有解决问题。
我该怎么做?
将以下库添加到链接器输入文件中:
legacy_stdio_definitions.lib
VS 2015现在使用内联定义来调用许多stdio.h
函数的内部函数。如果目标文件(或库成员)依赖于这些函数之一,那么legacy_stdio_definitions.lib
提供了一个可以链接到的函数的外部可链接版本。
你的另一个选择是在VS 2015中重新编译依赖于这些函数的单元(这可能是首选选项)。
我得到了这个错误编译循环max插件对版本5 max sdk(纯c api)。遗留的库修复对我不起作用(它应该有,如果有人知道为什么它可能没有,我会很好奇),但是我在加载stdio之前定义了_NO_CRT_STDIO_INLINE,这确实起了作用。
我最近遇到了这个问题,并能够将User32.lib
添加到链接器>输入在附加依赖项。
您也可以在代码中包含#pragma comment (lib, "User32.lib")
相关文章:
- C++:Application.cpp中抛出了未解析的外部符号(解决方案在问题的末尾,供未来的读者参考)
- 未解析的外部符号_MsiLocateComponentW@12.
- 在C++中使用 gRPC 时未解析的外部符号
- LibPrivoxy: 未解析的外部符号 __declspec(dllimport) int __stdcall Sta
- 尝试从 XamlApplication 编译 C++/WinRT 空白应用程序时,我收到未解析的外部符号 winrt_make_*
- 我收到错误LNK2001:未解析的外部符号(C++代码)
- 可视抽象类 c++(错误 LNK 2001:未解析的外部符号)
- 如何摆脱C++中未解析的外部符号"private: static char"错误?
- 当 lib 已添加到其他依赖项时,如何在 VS 中调试未解析的外部符号错误
- 仅在少数方法(静态或共享库)中解析的外部符号
- 未解析的外部符号"__declspec(dllimport)与 Spdlog c++ 库
- 函数 _main (OPENGL C++) 中引用的未解析的外部符号 ________
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- 使用静态 constexpr 成员的未解析外部符号
- 引入参数化构造函数后显示 LNK 2019 未解析外部符号的代码错误
- Dlib LNK2001未解析的外部符号USER_ERROR__consistent_build_configurati
- 矛盾的未解决的外部符号+未使用的库与VS2017和FFMPEG 4
- 链接器错误:切换到unicode生成给出:未解析的外部符号WinMain
- 错误 LNK2019:未解析的外部符号"外部"C"此错误是什么?
- 错误 : LNK2019: 未解析的外部符号"外部 "C"