unresolved external symbol 問題
為不確定的外部符號(hào),如果連接程序不能在所有的庫(kù)和目標(biāo)文件內(nèi)找到所引用的函數(shù)、變量或標(biāo)簽,將產(chǎn)生此錯(cuò)誤消息。意思是:沒有找到這個(gè)函數(shù)的實(shí)現(xiàn)。
連接錯(cuò),這個(gè)_save_ts 肯定是聲明,如果_save_ts 是一個(gè)函數(shù)的話,可能是你沒有把.c或者.cpp文件加入工程。如果是一個(gè)全局變量,可能是你沒有在.c或者.cpp文件中定義這個(gè)變量。
解決方法:
檢查該函數(shù)的實(shí)現(xiàn)部分是否存在或包含該函數(shù)的lib文件是否正確的鏈接進(jìn)代碼中,查明錯(cuò)誤后修正即可通過鏈接。
這個(gè)函數(shù)的.h文件格式如下:
1. 在keil 編譯器中,extern這個(gè)關(guān)鍵字即使不聲明,編譯器也不會(huì)報(bào)錯(cuò),且程序運(yùn)行良好,但不保證使用其它編譯器也如此。強(qiáng)烈建議加上,養(yǎng)成良好的編程規(guī)范。
2. .c文件中的函數(shù)只有其它模塊使用時(shí)才會(huì)出現(xiàn)在.h文件中,像本地延時(shí)函數(shù)static void delay (uint us)即使出現(xiàn)在.h文件中也是在做無用功,因?yàn)槠渌K根本不去調(diào)用它,實(shí)際上也調(diào)用不了它(static關(guān)鍵字的限制作用)。
3.注意本句最后一定要加分號(hào)”;”,相信有不少同學(xué)遇到過這個(gè)奇怪的編譯器報(bào)錯(cuò): error C132: 'xxxx': not in formal parameter list,這個(gè)錯(cuò)誤其實(shí)是.h的函數(shù)聲明的最后少了分號(hào)的緣故。
參考資料來源:百度百科-lnk2001
c++中 unresolved external symbol_main 是什么意思? 下面是我的程序.出現(xiàn)這個(gè)錯(cuò)誤,怎么解決?謝謝!
這類錯(cuò)誤是編譯器找不到指定的符號(hào)定義。它是在連接的時(shí)候出現(xiàn)的,有兩種可能:
1、你寫的這個(gè)函數(shù)只有省名,沒有定義。
2、這個(gè)函數(shù)是動(dòng)態(tài)連接庫(kù)導(dǎo)出的函數(shù),而你沒有連接它的lib庫(kù)文件可以用“#pragma comment(lib, "那個(gè)庫(kù).lib")”編譯命令或設(shè)置VC的lib文件路徑。
仔細(xì)查看代碼是構(gòu)建了main函數(shù)的,但是如下代碼:(紅框位置)
書寫錯(cuò)誤導(dǎo)致了程序無法執(zhí)行main()函數(shù)(未定義),將【mian】修改成【main】即可。
擴(kuò)展資料:
C++函數(shù)分類:(main()函數(shù)是可執(zhí)行程序的入口函數(shù))
一、從用戶使用的角度看,函數(shù)有兩種:
1、標(biāo)準(zhǔn)函數(shù),即庫(kù)函數(shù)。這是由系統(tǒng)提供的。
2、用戶自定義的函數(shù)。可以解決用戶的專門需要。
二、從函數(shù)的形式看,函數(shù)分兩類:
1、無參函數(shù)。printstar和print_message就是無參函數(shù)。在調(diào)用無參函數(shù)時(shí),主調(diào)函數(shù)并不將數(shù)據(jù)傳送給被調(diào)用函數(shù),一般用來執(zhí)行指定的一組操作。
2、有參函數(shù)。在調(diào)用函數(shù)時(shí),在主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞。也就是說,主調(diào)函數(shù)可以將數(shù)據(jù)傳遞給被調(diào)用函數(shù)使用,被調(diào)用函數(shù)中的數(shù)據(jù)也可以帶回來供主調(diào)函數(shù)使用。
參考資料:
百度百科--main()函數(shù)
編譯錯(cuò)誤,如何解決error LNK2001: unresolved external symbol
導(dǎo)致“error LNK2001: unresolved external symbol”的原因?yàn)間etStats此方法的鏈接庫(kù)沒有找到。很可能是工程中引用了第三方開源庫(kù)或者自己編譯生成的庫(kù),且只用了頭文件,而沒有將對(duì)應(yīng)的lib文件路徑加入到工程中。
具體解決方法為(此方法針對(duì)vs系列集成開發(fā)環(huán)境):
1.如果還未引入頭文件,那么可以右鍵點(diǎn)擊項(xiàng)目,然后點(diǎn)擊“屬性”。
2.點(diǎn)擊“C/C++”,選擇“常規(guī)”,然后在右側(cè)的“附加包含目錄”選擇你的第三方庫(kù)(或者自己編譯生成庫(kù))的頭文件目錄。
3.點(diǎn)擊“鏈接器”,在右側(cè)的選項(xiàng)中選擇“附加庫(kù)目錄”,最后引入你的第三方庫(kù)(或者自己編譯生成庫(kù))lib文件所在的目錄。
4.點(diǎn)擊“鏈接器”,在右側(cè)的選項(xiàng)中選擇“輸入”,在“附加依賴項(xiàng)”后面點(diǎn)擊三角形符號(hào),選擇“編輯”。
4.在新彈出來的對(duì)話框中,輸入你的第三方庫(kù)名稱,即xxx.lib。
4.最后點(diǎn)擊“確定”,重新編譯即可。
VC++ unresolved external symbol _main是什么錯(cuò)誤,怎么解決
VC++ unresolved external symbol _main的原因是系統(tǒng)錯(cuò)誤導(dǎo)致的,具體解決方法步驟如下:
1、首先打開計(jì)算機(jī),在計(jì)算機(jī)內(nèi)選擇“project“---”tting“。
2、點(diǎn)擊步驟1的操作后打開‘project tting’,如下圖。選擇2-1所示的‘link’---找到2-2所示的‘’subsystem: console“。
3、將界面內(nèi)的subsystem: console改為:subsystem: windows。
4、依次點(diǎn)擊下圖中3-1的”compile“按鈕和3-2的”build“按鈕。
5、重新編譯后會(huì)發(fā)現(xiàn)不存在錯(cuò)誤(error)和警告(warning)了。
6、最后單擊如圖下的感嘆號(hào)圖標(biāo)即可解決VC++ unresolved external symbol _main的問題。
unresolved external symbol怎么解決?
C語(yǔ)言u(píng)nresolved external symbol ?
本文發(fā)布于:2023-02-28 18:57:00,感謝您對(duì)本站的認(rèn)可!
本文鏈接:http://m.newhan.cn/zhishi/a/167759102948099.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請(qǐng)勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。
本文word下載地址:UNRESOLVED EXTERNAL SYMBOL.doc
本文 PDF 下載地址:UNRESOLVED EXTERNAL SYMBOL.pdf
| 留言與評(píng)論(共有 0 條評(píng)論) |