HPUX11.23 unsatisfied symbol in shared library(.so)
各位高手好~
小弟來此麻煩各位
近來在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的也沒有錯誤訊息出現
不好意思,敘述冗長
來此請教各位高手,麻煩各位高手了
打擾請見諒~謝謝
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你编译crypto.cpp dhash.cpp的时候是连接的openssl-0.9.7还是openssl-0.9.8的呢?
如果你要用openssl-0.9.8的话,运行/opt/openssl/switchversion.sh可以帮你在97和98之间切换
包括库