[英]Unresolved external symbol “*” referenced in function _main
我是Linux用户,我在Windows下没有太多的编程经验,所以我认为这是Visual Studio的问题,我必须使用它或类似的东西。
我有像这样的非常简单的代码:
myProgram.cpp
...
#include "rideList.h"
...
int main() {
...
rideListMain();
...
}
rideList.h
...
void rideListMain();
...
rideList.c
void rideListMain() {
// some code here...
}
实际上,还有另外4个文件和类似的函数,例如rideListMain() ,编译器的输出为
LNK2019 unresolved external symbol "void __cdecl rideListMain(void)" (?rideListMain@@YAXXZ) referenced in function _main
解
将* .cpp重命名为* .c解决了该问题。
您将头文件包含在.cpp文件中一次,从而按标准C ++实现预期的方式处理名称,然后在实际定义类时在.c文件中包含相同的头文件,从而使用未修饰的名称进行定义。
正如链接器非常清楚地告诉您的?rideListMain@@YAXXZ
,从未定义?rideListMain@@YAXXZ
。
我认为这是Visual Studio的问题
不,您对C和C ++的理解都存在问题。 如果这是您所希望的,则extern "C"
将在.cpp单元中声明该类型的名称。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.