プログラムを実行すると、次のエラーが発生します。
E: libsim.so を読み込めません: libsim.so: 未定義のシンボル: _ZTV15IteratorRegFile
sim.cpp には 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がもう見つけられないように、コンパイラが関数をマングリングしている理由は何ですか?