xcode编译时由于函数重复导致的问题
polarssl与libtomcrypt某个函数冲突的问题
现象:
说明:
我的程序分为主程序和sdk程序(framework),sdk中包括polarssl库(源文件)、libtomcrypt库(.a静态库文件)
问题一:
当都在framework中添加lib,在主程序中不添加libtomcrypt,则在使用polarssl库的ssl握手的时候会出现ssl握手失败:返回-30592
问题二:
当在主程序中也添加libtomcrypt.a库,则ssl握手会成功,但是在运行中的某个步骤会报错:hash_descriptor[hash_idx].process(&md, pInData,InDataLen)err
解决方法:
由于两个库中有相同的函数(函数名、函数参数都相同),所以导致两个库的方法串了;
我的polarssl是源文件,将函数名改掉就好(如:md5_process —改为—> md5_process1),h文件和c文件都要改掉,再运行就不会出现上述问题了
对比一下重复的内容吧:
polarssl中的md5_process方法:
void md5_process1( md5_context *ctx, const unsigned char data[64] )
{
uint32_t X[16], A, B, C, D;
GET_UINT32_LE( X[ 0], data, 0 );
GET_UINT32_LE( X[ 1], data, 4 );
GET_UINT32_LE( X[ 2], data, 8 );
GET_UINT32_LE( X[ 3], data, 12 );
GET_UINT32_LE( X[ 4], data, 16 );
GET_UINT32_LE( X[ 5], data, 20 );
GET_UINT