いくつかの純粋仮想メソッドを持つ通常の抽象クラスがあります。クラス自体は共有ライブラリの一部です。共有ライブラリ自体のコンパイルはOKです。しかし、ライブラリが、共有ライブラリの抽象クラスから派生し、純粋仮想メソッドを定義する別のクラスを持つ別のプログラムにリンクされている場合、次のリンカ エラーが発生します。
私はこのようにコンパイルします..:
g++ -I../path/to/the/library main.cpp derived.cpp -L../path/to/the/library -lsomename -o shared
リンカー エラーは次のとおりです。
libsomename.so: `AbstractClass::method()' への未定義の参照
抽象クラスが純粋な仮想メソッドにアクセスできないようですが、ライブラリ内のどこにも抽象クラスのインスタンスを作成しようとしません。
何が問題なのですか?