[問題] C++ 程式 link 問題

看板Programming作者時間17年前 (2008/03/19 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
請問 C++ 的 class 如果配合 template 使用 可以先編譯組譯成 obj 檔 日後再行 link 嗎? 現在有 a.h a.cpp 以及 main.cpp -- a.h #include <iostream> template <class T> class a { public: T i; void test(); }; -- a.cpp #include "a.h" template <class T> void a<T>::test() { std::cout << i << std::endl; } -- main.cpp #include "a.h" int main() { a<char> A; A.i = 'a'; A.test(); return 0; } 之後以 g++ -c a.cpp g++ -c main.cpp g++ a.o main.o 會出現 main.o(.text+0x124): In function `main': : undefined reference to `a<char>::test()' 之類的 undefined reference 錯誤 我該怎樣修正才能讓它正常呢? 但前提是除非 a.cpp a.h 有變更,否則不再編譯 a.o 出來 有辦法做到嗎? 謝謝! -- 夫兵者不祥之器物或惡之故有道者不處君子居則貴左用兵則貴右兵者不祥之器非君子 之器不得已而用之恬淡為上勝而不美而美之者是樂殺人夫樂殺人者則不可得志於天下 矣吉事尚左凶事尚右偏將軍居左上將軍居右言以喪禮處之殺人之眾以哀悲泣之戰勝以 喪禮處之道常無名樸雖小天下莫能臣侯王若能守之萬物將自賓天地相合以降甘露民莫 之令而自均始制有名名亦既有夫亦將 59-105-111-128.adsl.dynamic.seed.net.tw
文章代碼(AID): #17u0Da00 (Programming)
文章代碼(AID): #17u0Da00 (Programming)