看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: Win10, Linux, ...) Win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) VC++2017 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 小弟目前在做學校的Double-Linked List的作業,教授提供框架叫我們把implementation寫出來 之後執行教授提供的測試檔時出現了LNK 2019的錯誤:https://goo.gl/zog1jk 上網查了一下,普遍都是說忘記把該連結的dll檔寫進程式,但我這種簡單的程式根本不會用到任何外來的dll檔案啊QQ 而且我的錯誤訊息後面有亂碼,感覺跟網路上的案例都不太一樣。 想請問有人知道要怎麼解決嗎QQ 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 1>------ 已開始建置: 專案: DoubleLinkedList, 組態: Debug Win32 ------ 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: __thiscall DList<int>::DList<int>(void)" (??0?$DList@H@@QAE@XZ) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: bool __thiscall DList<int>::isEmpty(void)" (?isEmpty@?$DList@H@@QAE_NXZ) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: int __thiscall DList<int>::length(void)" (?length@?$DList@H@@QAEHXZ) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: void __thiscall DList<int>::insertFront(int const &)" (?insertFront@?$DList@H@@QAEXABH@Z) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: void __thiscall DList<int>::insertBack(int const &)" (?insertBack@?$DList@H@@QAEXABH@Z) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: class DListNode<int> * __thiscall DList<int>::front(void)" (?front@?$DList@H@@QAEPAV?$DListNode@H@@XZ) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: class DListNode<int> * __thiscall DList<int>::back(void)" (?back@?$DList@H@@QAEPAV?$DListNode@H@@XZ) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: class DListNode<int> * __thiscall DList<int>::next(class DListNode<int> *)" (?next@?$DList@H@@QAEPAV?$DListNode@H@@PAV2@@Z) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: class DListNode<int> * __thiscall DList<int>::prev(class DListNode<int> *)" (?prev@?$DList@H@@QAEPAV?$DListNode@H@@PAV2@@Z) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: void __thiscall DList<int>::insertAfter(int const &,class DListNode<int> *)" (?insertAfter@?$DList@H@@QAEXABHPAV?$DListNode@H@@@Z) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: void __thiscall DList<int>::insertBefore(int const &,class DListNode<int> *)" (?insertBefore@?$DList@H@@QAEXABHPAV?$DListNode@H@@@Z) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: void __thiscall DList<int>::remove(class DListNode<int> *)" (?remove@?$DList@H@@QAEXPAV?$DListNode@H@@@Z) 在函式 _main 中被參考 1>DoubleLinkedList.obj : error LNK2019: 無法解析的外部符號 "public: void __thiscall DList<int>::toString(void)" (?toString@?$DList@H@@QAEXXZ) 在函式 _main 中被參考 1>D:\Documents\GoogleDrive.infinite.r06\資料結構作業\HW3\DoubleLinkedList\Debug\DoubleLinkedList.exe : fatal error LNK1120: 13 個無法解析的外部符號 1>專案 "DoubleLinkedList.vcxproj" 建置完成 -- 失敗。 ========== 建置: 0 成功、1 失敗、0 最新、0 略過 ========== 程式碼(Code):(請善用置底文網頁, 記得排版) 程式碼與錯誤訊息:http://goo.gl/pcZ8ao 各檔案大概如下: DList.h.txt:提供double-linked list的控制項 DList.cpp:DList.h的implementation DListNode.h.txt:每個node DListNode.cpp.txt:node的implementation DoubleLinkedList.cpp.txt:測試的主程式碼 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.99 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1508496802.A.DFA.html
longlongint: 甚麼是 DList ? 10/20 19:06
jerryh001: 有template的class宣告和定義不能分開 10/20 19:09
Hazukashiine: 這週串列週? 10/20 19:10
chengcti: 可以提供整個專案檔嗎 有可能設定錯誤 10/20 19:18
damody: 推2樓 10/20 19:22
nimsbnims: @longlongint 就是用來指向sentinel和提供node刪減的類 10/20 20:03
nimsbnims: @jerryh001 請問這是什麼意思QQ 10/20 20:04
nimsbnims: @chengcti 好,我放在同一個google資料夾下了 10/20 20:04
nimsbnims: @chengcti https://goo.gl/v8hvGw 10/20 20:07
nimsbnims: @感謝jerryh001大大,我把所有實作都寫在h就好了Orz 10/20 20:24
moebear: 你程式碼連結我點進去叫我跟你拿權限== 10/21 03:02
nimsbnims: 抱歉,後來解決了我就把權限關閉了,解決方法後來是直 10/28 19:07
nimsbnims: 接把實作都寫入h檔,或是改用codeblock 10/28 19:07