gpt4 book ai didi

c - 奇怪的LNK2001 : unresolved external symbol

转载 作者:行者123 更新时间:2023-11-30 15:32:47 26 4
gpt4 key购买 nike

我正在尝试使用 Visual Studio 2010 制作一个小型 C 项目。现在我遇到了一个非常奇怪的问题。

我不需要依赖项,因此我使用这些链接器参数进行编译:

#pragma comment(linker,"/NODEFAULTLIB:LIBCMT")
#pragma comment(linker,"/NODEFAULTLIB:MSVCRT")

我实现了自己的基本 memset 函数,如下所示:

void __cdecl _zeromem(char * data,int len)
{
int i;

for (i = 0; i < len; i++)
{
*data = 0x00;
data++;
}

}

我正在尝试使用 CreateProcess API 生成一个进程,但当我使用它时会出现问题:

STARTUPINFO si;
PROCESS_INFORMATION pi;

_zeromem((char *)&pi, sizeof(PROCESS_INFORMATION));
_zeromem((char *)&si, sizeof(STARTUPINFO)); //line that causes linker error

如果我评论 STARTUPINFO 中的第二行将内存归零,它可以正常编译,如果没有,我会收到:

core.obj : error LNK2001: unresolved external symbol _memset
D:\myapp.exe : fatal error LNK1120: 1 unresolved externals

现在我做错了什么?

最佳答案

看起来优化器正在识别您的循环正在执行的操作,并将其替换为对 _memset 的调用,当您专门排除标准库时,该调用不可用。

关于c - 奇怪的LNK2001 : unresolved external symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24067970/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com