私は多くの静的ライブラリを持っています。1つはstatic_lib_a.aです。ダイナミックライブラリdynamic_lib.soを作成して、それらをまとめます。
static_lib_a.aでは、xerces3.1.1を使用してxmlを解析します。以下は、 static_lib_a.aのコードスニペットです。
xerces::DOMElement *pElementNode = dynamic_cast<xerces::DOMElement *>(pNode);
pNodeのタイプはxerces::DOMNodeです。xerces::DOMElementのオブジェクトに割り当てられます。このコード行はダウンキャストを実行します。
dynamic_lib.soでstatic_lib_a.aのすべてのシンボルを非表示にするために、-fvisibility=hiddenを使用してこの静的ライブラリを構築します。--fvisibility = hiddenを追加すると、pElementNodeは実行時にNULLポインターを返すことがわかりました。
gccコンパイラのバージョンは3.4.4です。
誰かが以前に同様の問題を抱えていますか?