我是一名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解决了问题。
答案 0 :(得分:2)
您将头文件包含在.cpp文件中一次,因此按标准C ++实现的方式修改名称,然后在实际定义类时在.c文件中包含相同的头文件,从而使用这个名字没有被扼杀。
正如链接器非常清楚地告诉你的那样,?rideListMain@@YAXXZ
从未定义过。
我认为这是Visual Studio的一个问题
不,你对C和C ++的理解都存在问题。 extern "C"
将在.cpp单元中声明未命名的类型名称,如果这是你想要的。