从cygwin转移到VisualStudio2013,错误LNK2019,snprintf(),c

时间:2015-04-19 00:43:31

标签: c visual-studio-2013 cygwin linker-errors stdio

我正在尝试使用MS Visual-Studio 2013运行用c编写的unix编译器项目,我无法摆脱以下错误:

error LNK2019: unresolved external symbol "_snprintf" referenced in 
    function "PUBLIC void SyntaxError( int Expected, TOKEN CurrentToken )"

如果我做对了,那么VisualStudio无法从snprintf()函数中找到正文/声明是一个问题,stdio.h函数应该在_CRT_SECURE_NO_WARNINGS中定义。

该项目与cygwin合作正常。我必须将#include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> #include "line.h" #include "strtab.h" #include "scanner.h" [..code..] PUBLIC void SyntaxError( int Expected, TOKEN CurrentToken ) { char s[M_LINE_WIDTH+2]; snprintf( s, sizeof(s), "Syntax: Expected %s, got %s\n", Tokens[Expected], Tokens[CurrentToken.code] ); Error( s, CurrentToken.pos ); } 添加到预处理器设置才能实现这一目标,但我认为这不会产生影响。

这是命名函数:

{{1}}

如果您可以帮助我,或者您还需要了解其他信息,请告诉我。现在是我的第3天,我的想法已经不多了;)。

到目前为止......托比亚斯

1 个答案:

答案 0 :(得分:4)

使用 MSVC 编译器的此函数的名称为_snprintf(),带有下划线。