我有很多静态库。一个是 static_lib_a.a。我创建了一个动态库 dynamic_lib.so 来将它们放在一起。
在 static_lib_a.a 中,它使用 xerces 3.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。
以前有没有人有类似的问题?