問題描述碰到以下開頭的內容,問題的解決方式
undefined reference to ...
可能的原因種類很多,以下舉例幾種我碰過且有解決的方式。
範例1/opt/work/core/Module.h:18: undefined reference to `vtable for Module'
collect2: error: ld returned 1 exit status
解法1去除多餘的 .o file (有可能過去存在的 .cpp,因為改版而消失)
殘留的 .o 檔未清除乾淨導致的編譯錯誤。
/opt/work/core/Module.h:18: undefined reference to `vtable for Module'
collect2: error: ld returned 1 exit status
範例2undefined reference to `boost::system::generic_category()'
解法2library 問題,
可以往 library 是否有被正確 include 的方向去查 (可能是 include 路徑不正確,或未 include)
請在 makefile 或編譯當中添加路徑 -lboost_system
整理 -l: library 名稱
-L:library 路徑 類似情況undefined reference to `Beanstalk::Client::~Client()'
請在 makefile 或編譯當中添加路徑 -lbeanstalk
Reference[C++中Boost使用出现错误undefined reference to boost::system::generic_category()'解决方法](https://blog.csdn.net/qq_31261509/article/details/79412700 "C++中Boost使用出现错误undefined reference to
boost::system::generic_category()’解决方法”) 可參考官方網站:beanstalkd client ⭐C++ 基礎用法 相關文章整理⭐: 1. 【C++】C++ compile 程式碼 使用 c++ 11 與使用相關的 package 2. 【C++】C/C++ 顯示資料的類別 (type) sample code (內含範例程式碼) print C data type, cout C++ data type, get variable type in c++ 3. 【C++】C++ 複製 2D array的方法 copy 2d array memcpy sample code (內含範例程式碼) ⭐Modern C++ ⭐: ⭐C++ 字串處理相關文章整理⭐: 1. 【C++】字串 char string stringstream 相關用法總整理 (內含範例程式碼) 與利用 sprinf, snprinf assign 值的方法 2. 【C++】字串 char string stringstream 「轉換」用法總整理 (內含範例程式碼) 3. 【C】printf, fprintf, sprintf, snprintf 相關用法總整理 (內含範例程式碼) 4. 【C++】C++ String 用法 連接兩個 String c++ string concat ⭐C++ 系統偵測相關文章整理⭐: 1. 【C++】C++ 利用 dirent.h 計算資料夾的檔案數量 count files sample code (內含範例程式碼) 2. 【C++】C++ inotify sample code 偵測指定路徑底下的文件變化 (內有範例程式碼) ⭐C++ OpenCV 相關文章整理⭐: 1. 【OpenCV】c++ OpenCV – 在 ubuntu 上第一次執行 OpenCV 程式 sample code (內含範例程式碼) 2. 【OpenCV】c++ OpenCV - 在圖片上寫上文字 cv::putText sample code (內含範例程式碼) 3. 【OpenCV】c++ OpenCV - cv::Rect 矩形用法與相關功能函數 sample code (內含範例程式碼) 4. 【OpenCV】c++ OpenCV - OpenCV 中的純量 定義顏色 cv::Scalar(255,255,255) color sample code (內含範例程式碼) 5. 【OpenCV】用 C++ 計算 iou 的方法 與網路算法常見錯誤(內附範例程式碼) sample code ⭐C++ Makefile 相關文章整理⭐: 1. 【C++ Makefile】- 1 / 嘗試撰寫自己的第一份 Makefile 2. 【C++ Makefile】- 2 / 新增自己的變數 3. 【C++ Makefile】- 3 / Makefile 常用變數 -「$@」, 「$^」 4. 【C++ Makefile】- 4 / Makefile 常用 fake target -「.PHONY」
5. 【C++ Makefile】- 5 / Makefile 內建變數 -「$@」, 「$^」, 「$<」, 「$* 」,「$? 」
⭐【喜歡我的文章嗎? 歡迎幫我按讚~ 讓基金會請創作者喝一杯咖啡! 】
如果喜歡我的文章,請幫我在下方【按五下Like 】 (Google, Facebook 免註冊 ),會由 「LikeCoin 」 贊助作者鼓勵繼續創作,讀者們「只需幫忙按讚,完全不用出錢 」哦!