在centos7.7下用SSL通讯加密编程时,代码一直报错collect2: error: ld returned 1 exit status
查了很多资料一般是有因为两种错误:
1.是main函数中出错,函数名有错误或者函数在卖弄函数外定义,却在函数内部引用;
2.是链接库不全,或者链接库不全,或者版本不对;
但我链接的库和main函数都没有问题,才想起不久才把openssl升级,会不会是有残余的头文件残留。
于是查了libssl.so,libcrypto.so的版本和函数,发现确实有函数版本不一样。去查,头文件引进的路径
g++ -print-prog-name=cc1plus
-v
发现在引进的路径在/usr/local/include的文件路径下有残余的1.1.0版本的openssl的头文件,将之删除,
便解决了问题。
==============================================================
关于openssl版本的问题,多说一句,我用的是1.0.2.k版本的openssl,以前系统里面有安装过1.1.0版本的openssl,
可能是卸载的时候出了点问题。