[英]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.