[問題]undefined reference to 'typeinfo for..'

作者: Phantasnix (凰響)   2013-01-05 00:38:59
class中的static member有在cpp中初始化。(unsigned CirGate::_globalRef = 0;)
pure virtual function在每個子class中都有實作。
先前也發生過這樣的狀況,所以我把上述重check了遍。也make clean過。
把新寫的幾個function先comment掉。將class狀態回復到先前可以compile的狀態。
但還是跳出這樣的訊息:
../../lib/libcir.a(cirMgr.o): In function
`CirMgr::readCircuit(std::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&)':
/home/phantasnix/DSnP/fraig/src/cir/cirMgr.cpp:233: undefined reference to
`typeinfo for AIG'
/home/phantasnix/DSnP/fraig/src/cir/cirMgr.cpp:233: undefined reference to
`typeinfo for AIG'
../../lib/libcir.a(cirMgr.o): In function
`CirMgr::writeAag(std::basic_ostream<char, std::char_traits<char> >&) const':
/home/phantasnix/DSnP/fraig/src/cir/cirMgr.cpp:435: undefined reference to
`typeinfo for AIG'
/home/phantasnix/DSnP/fraig/src/cir/cirMgr.cpp:435: undefined reference to
`typeinfo for AIG'
../../lib/libcir.a(cirMgr.o): In function `AIG':
/home/phantasnix/DSnP/fraig/src/cir/cirGate.h:131: undefined reference to
`vtable for AIG'
google後除了最開始提到的原因,要解決都是link library層面的東西.....
但是先前可以compile的,應該是我還少check了什麼,實在一籌莫展PO文求救。
作者: ric2k1 (Ric)   2013-01-05 01:29:00
如果 virutal function, static 都檢查過了,哪可能只好把心寫的東西用 binary search comment out 掉,看看到底是(新寫) | 哪裡的問題...
作者: djshen (djshen)   2013-01-05 02:03:00
明年可以教一下版本控制XD
作者: ric2k1 (Ric)   2013-01-05 02:08:00
是嗎? 我想版本控制的 tool 應該摸一下就上手了吧! 問題是沒有機會練習的話可能有是沒有用... (我來想想新的 project
作者: yan12125 (姥姥)   2013-01-05 16:15:00
少const?
作者: ric2k1 (Ric)   2013-01-05 20:18:00
的確有可能因為少 const 而被視為不同 functions, 造成某些pure virtualfunction 沒有被所有的 derived class inherit
作者: wmin0 (小新)   2013-01-05 22:07:00
不是function的undefined refernece 是type的vtable整個不見編.o是不是把vtable統統幹掉了

Links booklink

Contact Us: admin [ a t ] ucptt.com