C++ LNK2019未解析的外部符号 stdlib

C++ LNK2019 unresolved external symbol stdlib

本文关键字:外部 符号 stdlib LNK2019 C++      更新时间:2023-10-16

我有一个程序需要atol()的一个函数。 所以我包含了stdlib.h,但它似乎没有看到它。

编辑:我知道要使用它,我应该包括stdlib.h。 我这样做了,但我仍然收到此错误。该函数:

void
intstr( char *t )
{
    long int atol( char * );
    long x;
    int i;
    x=atol(t);
    for(i=0;i<nilit;i++){
        if(x == ilit[i]){
        lsymb =symbol[nsymb++] = 250+i;
        return;}
    }
    if( 50 <= nilit){ 
        puts("** too many int literals**");
        exit(1);
    }
    ilit[nilit++] = x;
    lsymb = symbol[nsymb++] = 249 + nilit;
}

尝试构建时遇到的错误

 error LNK2019: unresolved external symbol "long __cdecl atol(char *)" (?atol@@YAJPAD@Z) referenced in function "void __cdecl intstr(char *)" (?intstr@@YAXPAD@Z)
C:xXXXDebugp8program.exe : fatal error LNK1120: 1 unresolved externals

你有这个代码:

void
intstr( char *t )
{
    long int atol( char * );

这个atol()错误的声明有什么意义?
要在代码中使用atol(),只需#include <stdlib.h> .

请注意,atol() 的原型是:

long atol( const char *str );

(输入参数是一个常量指针。