2017-01-23 114 views
-1

我是一个Linux用户,我没有太多的Windows编程经验,所以我按下它是Visual Studio的问题,我必须使用,或类似的东西.. 。无法解析的外部符号“*”在函数中引用_main

我有非常简单的代码,这样的:

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)" ([email protected]@YAXXZ) referenced in function _main 

解决方案

将* .cpp重命名为* .c解决了这个问题。

+2

'rideList.c'可能的名称修改问题。我的意思是你忘了'extern“c”{'http://stackoverflow.com/questions/1041866/in-c-source-what-is-the-effect-of-extern-c – drescherjm

+2

你混合了'c' 'C++' – Raindrop7

+1

C和C++是不同的语言。 – Olaf

回答

2

您在.cpp文件中包含头文件一次,因此标准C++实现期望的名称会变形,然后在实际定义类时将相同的头文件包含在.c文件中,从而定义它名字不加密。

正如链接器告诉你非常清楚,[email protected]@YAXXZ从未定义。

我pressume它与Visual Studio

都能跟得上的问题,它与C和C++两者的理解有问题。如果这是你想要的,extern "C"将声明类型名称在.cpp单元中解除悬挂。

相关问题