gpt4 book ai didi

c - 编译时 libcurl 错误(负值)

转载 作者:行者123 更新时间:2023-11-30 19:42:30 31 4
gpt4 key购买 nike

我正在尝试编译一个很大程度上依赖于 libcurl 和 pcap 的自定义包,在我的机器上它工作得很好,但是当我尝试使用工具链编译它时,我收到此错误:

$ /home/kavastudios/sites/proC/SDK/OpenWrt-Toolchain-ar71xx-for-mips_34kc-gcc-4.8-linaro_uClibc-0.9.33.2/toolchain-mips_34kc_gcc-4.8-linaro_uClibc-0.9.33.2/bin/mips-openwrt-linux-uclibc-gcc airhog.c -o airhogfull  -lpcap -lcurl
mips-openwrt-linux-uclibc-gcc.bin: warning: environment variable 'STAGING_DIR' not defined
In file included from /usr/include/curl/curl.h:35:0,
from airhog.c:16:
/usr/include/curl/curlrules.h:142:3: error: size of array '__curl_rule_01__' is negative
__curl_rule_01__
^
/usr/include/curl/curlrules.h:152:3: error: size of array '__curl_rule_02__' is negative
__curl_rule_02__
^

如果我编译它并使用curl删除所有代码(只留下pcap),我会收到此错误:

cannot find -lpcap
collect2: error: ld returned 1 exit status

在阅读了很多帖子后,我的猜测是我需要交叉编译 pcap 和 curl,然后在尝试编译我的脚本时引用它们,但我完全不知道如何做到这一点。

如果您能给我一些线索,我将不胜感激:

  1. 正确设置暂存目录(我一直在尝试使用 PATH/STAGING_DIR 变量,但没有成功)

  2. 如何编译curl/pcap库(在编译我的脚本时使用,并且不会最终用这些库替换我机器中使用的库)

  3. 在编译脚本时我应该包含哪些标志或命令。

我使用的是 Ubuntu 14.04

谢谢。

最佳答案

我不知道你对脚本做了什么,但我可以回答你的第二个问题。

(将 arm-none-linux-gnueabi 替换为您的工具链)

交叉编译libpcap

1)首先配置libpcap如下图

./configure --prefix=<install/path> --host=arm-none-linux-gnueabi --with-pcap=linux

2)然后编译

make

3)最后安装

make install

交叉编译libcurl

1) 配置

./configure --prefix=<install/path> --host=arm-none-linux-gnueabi 

然后按照 libpcap 的步骤 2 和 3 进行操作

如果您需要其中的其他功能,您也必须交叉编译这些依赖项。

关于c - 编译时 libcurl 错误(负值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31849164/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com