我有C代码,我想编译一个共享库。此共享库依赖于其他FlexNet Publisher库。编译库时我没有遇到任何错误,但在运行时我得到了
'/home/user/workspaceforC/libMylibrary.so'缺少符号'Ox410ef03750728897'
Missing symbol 'Ox410ef0495302ac72' required by '/home/user/workspaceforC/libMylibrary.so'
当我运行nm libMylibrary.so时,我可以看到两个符号:
U Ox410ef03750728897
U Ox410ef0495302ac72
它没有告诉我他们缺少哪个库。
我对编译/链接时缺少的内容毫无头绪。
我有相同的代码,我使JNI兼容并使用相同的makefile编译到共享库。我可以成功加载它并在eclipse for Java中运行它。
请指教。只有内存地址的U是什么意思,我该如何解决它? 我做了一个readelf,它显示:
0x0000000000000001(NEEDED)共享库:[libdl.so.2]
0x0000000000000001(NEEDED)共享库:[libpthread.so.0]
0x0000000000000001(NEEDED)共享库:[libc.so.6]
LD_LIBRARY_PATH设置为/ lib64,其中包含所有这3个库。
请建议。