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