日期:2014-05-16  浏览次数:20759 次

linux 小程序 连接openssl 库错误,请帮忙
redhat ,gcc4.4.0, openssl 1.0.0g(用gcc44编译完成的,编译没有问题,静态库,编译后的库已经放到/usr/lib下了).
编译我的程序,总报下面这个错误。应该是指连接ssl库的时候找不到函数。

gcc44 -o ChanjetGeneralServices ReadAuth.o CommonFunc.o Config.o ProductClientBase.o ProductClientFactory.o SSL_Server.o Server.o -lstdc++ -lpthread -lL80SGV -lcrypto -lssl -ldl 
/usr/lib/gcc/i386-redhat-linux6E/4.4.0/../../../libssl.a(s3_srvr.o): In function `ssl3_get_cert_verify':
s3_srvr.c:(.text+0xd52): undefined reference to `X509_certificate_type'
/usr/lib/gcc/i386-redhat-linux6E/4.4.0/../../../libssl.a(s3_enc.o): In function `ssl3_change_cipher_state':
s3_enc.c:(.text+0xb0c): undefined reference to `COMP_CTX_free'
s3_enc.c:(.text+0xb26): undefined reference to `COMP_CTX_new'
s3_enc.c:(.text+0xbb6): undefined reference to `COMP_CTX_free'
s3_enc.c:(.text+0xbcc): undefined reference to `COMP_CTX_new'

下面还有些错误,同类型,就不贴了。
哪位知道啊?谢谢

------解决方案--------------------
为啥咱感觉是ssl有问题....
ssh -V看看你的openssl是否正常工作中?
另外ssl 1.0的确感觉上和以前有一些区别,可以回退到0.9.8试试看

------解决方案--------------------
把链接库的顺序调整一下
-lcrypto -lssl
改为
-lssl -lcrypto

------解决方案--------------------
我觉得很可能是版本的问题,上次我就是遇到这个,后来自己下了openssl的比较新的源码重新编译和交叉编译搞定了。
------解决方案--------------------
下个新版本吧