HPUX11.23 unsatisfied symbol in shared library(.so)

发布于 2022-08-22 13:45:33 字数 1632 浏览 10 评论 1

各位高手好~
小弟來此麻煩各位

近來在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

裂开嘴轻声笑有多痛 2022-09-04 09:58:54

你编译crypto.cpp  dhash.cpp的时候是连接的openssl-0.9.7还是openssl-0.9.8的呢?
如果你要用openssl-0.9.8的话,运行/opt/openssl/switchversion.sh可以帮你在97和98之间切换
包括库

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文