【版权申明】转载请附上出处链接
静态库报错:函数重复定义或者找不到某个函数
1. 函数重复定义
现象如下:
libcrypto.a 库文件发现SHA1_Update被重复定义从而报错。
libcrypto.a(sha1dgst.o): In function `SHA1_Update':
sha1dgst.c:(.text+0x1040): multiple definition of `SHA1_Update'
libpaho-mqtt3a.a(SHA1.c.o):SHA1.c:(.text+0x580): first defined here
解决办法:
将两个库的位置进行调换即可。
从原来的 -lpaho-mqtt3a -lpaho-mqtt3c -lcrypto
变成 -lcrypto -lpaho-mqtt3a -lpaho-mqtt3c
2. 找不到某个函数
现象如下:
libssl.a 库文件找不到来自crypto.a库中的函数,实际上他们都是存在的。
libssl.a(ssl3_record.o): In function `ssl3_do_uncompress':
ssl3_record.c:(.text+0x20c): undefined reference to `COMP_expand_block'
解决办法:
将两个库的位置进行调换即可。
从原来的 -lcrypto -lssl
变成 -lssl -lcrypto