设为首页 加入收藏

TOP

c++ 编译 curl 报错 数组‘__curl_rule_01__’的大小为负 解决方法
2019-09-03 03:37:30 】 浏览:35
Tags:编译 curl 报错 数组 __curl_rule_01__ 大小 解决 方法

背景:在原有的项目GCC编译环境下(arm-linux 32位),增加x86-linux 64位的编译环境,编译curl库的时候发生错误。

其他:编译服务器为64位Centos

编译错误提示

/include/curl/curlrules.h:142:3: 错误:数组‘__curl_rule_01__’的大小为负
__curl_rule_01__

解决过程:

1.在网上搜索得知是用64位的编译环境编32位的镜像时导致的:在 curlrules.h 。这个错误是故意强制作为检查数据类型大小的一部分。

2.尝试按网上修改:CURL_SIZEOF_LONG 和 CURL_SIZEOF_CURL_OFF_T,但未解决问题。

3.灵机一动,因为提示是curlrules.h头文件出错,那么能不能直接换64位的头文件呢

用命令搜索 find /usr/include -name curlrules.h, 得知Centos自身就有curl库,

所以直接把项目的头文件路径定到/usr/include,但是这影响到其他库的头文件路径;

4.再改良下,把整个curl文件夹拷贝到原include路径下面,为了避免与原先旧的curl冲突,把新的curl重命名为curl64

5.然后修改原码 把所有的 #include <curl/ 全局替换成 #include <curl64/ ,再编译,OK

 

 

总结:

1.如果不考虑旧的项目环境,直接替换curl的头文件

2.如果想其他项目的环境并存,则把64位的curl头文件拷贝到原include路径下并命名为curl64,再修改修改源码中的 #include <curl/ 全局替换成 #include <curl64/

第一篇博文,写得不好,多多指教

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇ESP32 - GPIO中断触发与事件回调 下一篇有关同时进行两条线路的四维dp

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目