目錄結構如下,include 與 lib 為資料夾分別包含 h 檔與對應的 lib。
inlcude
cal.h
lib
cal.lib
hello.cpp
並且執行如下指令編譯
g++ -iquote .\include -L .\lib -l cal .\hello.cpp -o hello.exe
會出現找不到 add reference,爬了歸納出是 link 環節錯誤,g++ 沒有找到 cal.lib
中的 add 函數,但是有找到 cal.lib
檔案本身的
undefined reference to `add@4'
後來使用 visual studio 開啟 c++ 專案,再設定一下 .h 檔案與 .lib 檔案路徑,就能編譯成功。
(當然沒有 .lib 原始碼的。)
請問是 lib 檔案不被 g++ 所接受嗎?還是參數給錯了呢?
試試看這方法:
1)將 cal.lib 改名成 cal.a
或
2)g++ -iquote .\include .\lib\cal.lib .\hello.cpp -o hello.exe
參考:
https://stackoverflow.com/questions/47410667/link-to-external-library-with-g