我在运行时得到这个:
./LibTestApp: symbol lookup error: libaxis2_mod_addr.so: undefined symbol: axis2_handler_create
命令user1@ubuntu:nm path/libaxis2_mod_addr.so | grep axis2_handler_create
输出为:U axis2_handler_create
,其中U确认它未定义。
命令user1@ubuntu:ldd path/libaxis2_mod_addr.so
我明白了:
linux-gate.so.1 => (0xb7787000)
libaxis2_axiom.so.0 => /opt/wso2/wsf_cpp/lib/libaxis2_axiom.so.0 (0xb7749000)
libaxutil.so.0 => /opt/wso2/wsf_cpp/lib/libaxutil.so.0 (0xb771e000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7553000)
libaxis2_parser.so.0 => /opt/wso2/wsf_cpp/lib/libaxis2_parser.so.0 (0xb754a000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb752f000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb752a000)
/lib/ld-linux.so.2 (0xb7788000)
libguththila.so.0 => /opt/wso2/wsf_cpp/lib/libguththila.so.0 (0xb7519000)
此链接库中没有一个包含axis2_handler_create
且没有人与libaxis2_engine链接,其中包含disired符号(axis2_handler_create)。
这是否是WSF生成的错误,因为错过了所需库的链接而构建了所描述的框架?或者我错过了什么?任何想法我怎样才能解决我的问题?
修改
忘记提及,加载此库的代码是由wsdl2cpp tool基于here的Onvif WSDL文件生成的。就我而言,它只是devicemgmt.wsdl和media.wsdl。