Ubuntu16.04 32位编译使用 libcurl 使用curl库出现了__curl_rule_01__ is negative问题

在编译arm64的curl库时出现了__curl_rule_01__ is negative问题,发现是#define CurlchkszEQ(t, s) sizeof(t) == s ? 1 : -1,具体就是CurlchkszEQ(long, CURL_SIZEOF_LONG)计算出了问题。也就是对对CURL_SIZEOF_LONG的定义与系统得到long长度不一致。类型通过sizeof计算时不匹配导致。原有curlbuild.h中对各个arm平台定义不够全面。针对arm64在curlbuild.h中增加:

#if defined(aarch64)

define CURL_SIZEOF_LONG 8

define CURL_TYPEOF_CURL_OFF_T long

define CURL_FORMAT_CURL_OFF_T “ld”

define CURL_FORMAT_CURL_OFF_TU “lu”

define CURL_FORMAT_OFF_T “%ld”

define CURL_SIZEOF_CURL_OFF_T 8

define CURL_SUFFIX_CURL_OFF_T L

define CURL_SUFFIX_CURL_OFF_TU UL

#endif

参考https://blog.csdn.net/oFengXin/article/details/57072632
32位,长度 8 改为4

你可能感兴趣的:(QT)