1. 程式人生 > 實用技巧 >vs編譯除錯遇到問題

vs編譯除錯遇到問題

1.C2589 “(”:“::”右邊的非法標記

(轉載自:https://blog.csdn.net/ldepn/article/details/78647114

2.error LNK2019 :無法解析的外部符號

1>api.obj : error LNK2019: 無法解析的外部符號 [email protected],該符號在函式 "public: int __thiscall CUDTUnited::startup(void)" ([email protected]@@QAEHXZ) 中被引用

(轉載自:https://blog.csdn.net/renguoqing1001/article/details/52848232

!!!是標頭檔案和lib檔案缺失!!!!

(我是在配置pcl的時候,以為只要引入屬性表就可以了,但實際上還要在自己專案上在配置一下pcl依賴項才行)

具體問題具體分析,網上的解決方案:

1、檢視是否標頭檔案和lib都已經匯入。(我已經設定正確,仍然有錯,看方法2)

一般這種方法很難達到效果,網上也好多人說,知道這種錯,但是我不知道缺哪種lib啊.....這就尷尬了。

2、檢視是否有引用的其他專案(需要你提前知道他們的引用關係)

我出現這種情況是在一個解決方案中有好多個專案,其中它們之間有相互引用的關係。我新建專案後,使用了以前的引用檔案,但是我沒有設定引用關係。具體方案:

專案右鍵--屬性或者是引用,效果一樣:

然後就是設定相應的引用項,點選新增新引用(N)按鈕進行引用:

設定完以後重新編譯執行。錯誤麼有了。

題外話:

也許你說了,我哪知道他們的引用關係。一般都可以從錯誤提示中看出來的。比如:

TraCIAPI.obj : error LNK2019: 無法解析的外部符號 "public: virtual void __thiscall tcpip::Storage::writeInt(int)" ([email protected]@[email protected]@[email protected]),該符號在函式 "protected: void __thiscall TraCIAPI::send_commandSimulationStep

(__int64)const " ([email protected]@@[email protected]) 中被引用

其中的tcpip::Storage::writeInt(int)和TraCIAPI::send_commandSimulationStep這兩個函式你完全可以去找到的,根據提示提到的檔案和函式,將提到的相關的專案進行引用就可以了。不過一般引起這種錯誤的原因是,你拿著別人的專案在自己的電腦上跑,那麼你可以問一下原作者的引用關係。不過還是自己動手比較快。