VC出现error LNK2001,但VS没报错,请问可能有哪些问题呢 20C

报错如下

出错的三个函数是某个cpp文件中的。但是这个cpp文件定义了更多其他的函数,只报错了这三个。

VS没问题,VC出错,函数的声明和定义是对应的,还会是什么原因呢?

Linking...
ShortestTime.obj : error LNK2001: unresolved external symbol "double __cdecl RandSolution(struct currentstate,int * const,class myPlatform &)" (?RandSolution@@YANUcurrentstate@@QAHAAVmyPlatform@@@Z)
ShortestTime.obj : error LNK2001: unresolved external symbol "struct state __cdecl TransformState(struct currentstate,class myPlatform *)" (?TransformState@@YA?AUstate@@Ucurrentstate@@PAVmyPlatform@@@Z)
ShortestTime.obj : error LNK2001: unresolved external symbol "struct state __cdecl PreSolution(struct currentstate,int * const,int * const,int * const,double * const,class myPlatform &)" (?PreSolution@@YA?AUstate@@Ucurrentstate@@QAH11QANAAVmyPlatfor
m@@@Z)
Debug/assignment.exe : fatal error LNK1120: 3 unresolved externals
执行 link.exe 时出错.
Creating browse info file...

assignment.exe - 1 error(s), 0 warning(s)

3个回答

像是加载了某个动态库,而那个动态库的lib文件不正确导致。
可能是你使用了最新的动态库头文件,较旧的lib文件导致。

u011319658
超级悟空的春天 回复qq_34517375:1.不相匹配的程序代码或模块定义(.DEF)文件能导致LNK2001。例如, 如果在C++源文件内声明了一变量“var1”,却试图在另一文件内以变量“VAR1”访问该变量,将发生该错误。   2.如果使用的内联函数是在.CPP文件内定义的,而不是在头文件内定义将导致LNK2001错误。   3.调用函数时如果所用的参数类型同函数声明时的类型不符将会产生LNK2001。   4.试图从基类的构造函数或析构函数中调用虚拟函数时将会导致LNK2001。   5.要注意函数和变量的可公用性,只有全局变量、函数是可公用的。静态函数和静态变量具有相同的使用范围限制。当试图从文件外部访问任何没有在该文件内声明的静态变量时将导致编译错误或LNK2001。   函数内声明的变量(局部变量) 只能在该函数的范围内使用。 C++ 的全局常量只有静态连接性能。这不同于C,如果试图在C++的多个文件内使用全局变量也会产生LNK2001错误。一种解决的方法是需要时在头文件中加入该常量的初始化代码,并在.CPP文件中包含该头文件;另一种方法是使用时给该变量赋以常数。
一年多之前 回复
phenix2009
白色一大坨 回复qq_34517375: 方便发代码过来吗,465617727@qq.com
一年多之前 回复
weixin_41986182
weixin_41986182 回复qq_34517375: 你使用了别人的头文件吗?如果使用了,别人给了你什么?如是我参的那样,则别人应该给了你头文件+DLL+LIB,你现在要把LIB也包进你的工程了。
一年多之前 回复
qq_34517375
qq_34517375 抱歉我是新手,VS上建完工程添完cpp和h文件就能跑了,动态库静态库这些的不懂,能详说一下吗
一年多之前 回复

请问所谓vs没问题vc有问题,是指vs2008等软件没问题,用vc6加载时候就报错吗?如果是这样可能是那几个函数里里面有在vs里面可用但vc里面不能用的接口或者其他定义

RandSolution/TransformState/PreSolution这三个函数在cpp文件中有对应的定义吗?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问