執行時,我的計劃,我得到以下錯誤:無法加載,錯誤的符號C++名稱重整
在sim.cpp中有E:無法加載libsim.so:libsim.so:未定義的符號:_ZTV15IteratorRegFile
有s.th.像
//IteratorRegFileIs is a wrapper that calls the constructor for IteratorRegFile
Fwk::Ptr<IteratorRegFile> iteratorRegFile_ = IteratorRegFile::IteratorRegFileIs("RF");
void init(){
SparseArrayInt64 *sparse_array = new SparseArrayInt64(segID);
}
在SparseArrayInt64.cpp
:
extern Fwk::Ptr<IteratorRegFile> iteratorRegFile_;
IteratorRegFile.h:
public:
static IteratorRegFile::ValidPtr IteratorRegFileIs(Tac::Name _name) {
IteratorRegFile * m = new IteratorRegFile(_name);
m->referencesDec(1);
return m;
}
protected:
IteratorRegFile(const IteratorRegFile&);
explicit IteratorRegFile(Tac::Name _name): Tac::Entity(_name),
index_(0) {
handleInit();
}
任何想法,爲什麼編譯器重整的功能,使的lib沒有找到它了嗎?
Eh,一個是'Fwk :: Ptr',另一個是'IteratorRegFile' - 爲什麼_應該定義一個滿足另一個? –
ildjarn
對不起剪切和粘貼錯誤 – hlitz
是否一直使用「_」結尾? – stark