免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4189 | 回复: 1
打印 上一主题 下一主题

HPUX11.23 unsatisfied symbol in shared library(.so) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-02-26 13:48 |只看该作者 |倒序浏览
各位高手好~
小弟來此麻煩各位

近來在HP-UX上研究雲端的軟體Sector/Sphere
由於原程式主要是開發 for Linux
因此小弟修改了裡面小部分的程式碼
在unix上以gmake來執行原程式碼的Makefile

在過程中出現了兩個主要的warning
部分程序如下:
g++ -fPIC conf.cpp -c
...
...
g++ -shared -o libcommon.so conf.o snode.o meta.o index.o index2.o memobj.o topology.o sysstat.o log.o sphere.o constant.o crypto.o transport.o datachn.o dhash.o routing.o ssltransport.o threadpool.o

ar -rcs libcommon.so conf.o snode.o meta.o index.o index2.o memobj.o topology.o sysstat.o log.o sphere.o constant.o crypto.o transport.o datachn.o dhash.o routing.o ssltransport.o threadpool.o

產生libcommon.so這個共用的shared library

在compile另一個檔案時
參考到這個shared library
以ldd查 確定有連結到
但compile時出現錯誤:
ld: (Warning) Unsatisfied symbol \"EVP_bf_cbc\" in file ../lib/libcommon.so
ld: (Warning) Unsatisfied symbol \"SHA1\" in file ../lib/libcommon.so

EVP_bf_cbc在crypto.cpp中使用
SHA1在dhash.cpp中使用
兩個檔案編譯出來的.o 看起來也正常

在ubuntu中是正常的
我在Ubuntu中vi libcomm.so,也有找到這兩個定義
但是unix下卻還是出現找不到 (使用gmake)

在其他論壇詢問,有人猜測是openssl出了問題

主機上有安裝openssl
我以swlist -product | grep openssl 查詢
查到的版本為0.9.7

我在compile時
有將連結設置到一個0.9.8版本的資料夾中

g++ start_slave.cpp -L/opt/openssl/0.9.8/lib/hpux32/ -lssl....
ldd start_slave
     libssl.so.1 => /opt/openssl/0.9.8/lib/hpux32/libssl.so.1

其他使用到libssl的也沒有錯誤訊息出現

不好意思,敘述冗長

來此請教各位高手,麻煩各位高手了

打擾請見諒~謝謝

论坛徽章:
0
2 [报告]
发表于 2010-03-12 16:07 |只看该作者
你编译crypto.cpp  dhash.cpp的时候是连接的openssl-0.9.7还是openssl-0.9.8的呢?
如果你要用openssl-0.9.8的话,运行/opt/openssl/switchversion.sh可以帮你在97和98之间切换
包括库
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP