Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;:Visual Studio 2015中未解析的外部符号_sprintf和_sscanf 对于一个研究项目,我正在编写一个C++的附加程序,用于一个科学计算语言。不幸的是,允许用户这样做的库没有很好地保持最新_C++_Visual Studio 2015 - Fatal编程技术网

C++;:Visual Studio 2015中未解析的外部符号_sprintf和_sscanf 对于一个研究项目,我正在编写一个C++的附加程序,用于一个科学计算语言。不幸的是,允许用户这样做的库没有很好地保持最新

C++;:Visual Studio 2015中未解析的外部符号_sprintf和_sscanf 对于一个研究项目,我正在编写一个C++的附加程序,用于一个科学计算语言。不幸的是,允许用户这样做的库没有很好地保持最新,c++,visual-studio-2015,C++,Visual Studio 2015,我在XCode中启动了这个项目,它在那里构建得很好。后来我不得不转移到PC上,所以我将代码迁移到Visual Studio 2015。执行此操作后,由于以下错误,我无法构建: LNK2001 : unresolved external symbol _sprintf LNK2019 : unresolved external symbol _sscanf referenced in function _GetDDouble LNK2019 : unresolved external symbol

我在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(安全)NO(无)警告
。但是,这a)修复了无错误,b)添加了警告
C4005:“\u CRT\u SECURE\u no\u WARNINGS”:宏重新定义。我假设库已经定义了这个宏,预料到了这个问题。不管怎样,这并没有解决问题


如何继续?

将以下库添加到链接器输入文件:

legacy_stdio_definitions.lib
VS 2015现在使用内联定义,为许多
stdio.h
函数调用内部函数。如果对象文件(或库成员)依赖于其中一个函数,则
legacy\u stdio\u definitions.lib
提供可链接到的函数的外部可链接版本


您的另一个选项是使用VS 2015重新编译依赖于这些函数的单元(这可能是首选选项)。

我在针对版本5 max sdk(纯c api)编译循环max插件时遇到此错误。遗留库修复程序对我来说不起作用(它应该起作用,如果有人知道它为什么不起作用,我会很好奇),但我在加载STDIO之前定义了“NO\u CRT\u STDIO\u INLINE”,这确实起到了作用。

@user4581301:你能详细说明一下吗?对不起。即使是用包装纸,也要毫无哀号和呻吟地支撑着旧的stdio。snprintf不时都会成为这项工作的合适工具,我讨厌为一些本应该放在盒子里的东西做可移植性包装。@Epirocks:我自己还没有测试过它-你在使用来自
C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\lib\amd64
的库吗?您得到的确切错误消息是什么?不,x64,但最终错误来自一个单独的库,该库已被供应商替换,因此请忽略我所说的,谢谢。您还可以将:
#pragma comment(lib,“legacy_stdio_definitions.lib”)
添加到一个源文件中,以便链接器也可以添加它。