编译时出现libcurl错误(负值)

编译时出现libcurl错误(负值),c,cross-compiling,libcurl,libpcap,openwrt,C,Cross Compiling,Libcurl,Libpcap,Openwrt,我正在尝试编译一个很大程度上依赖于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

我正在尝试编译一个很大程度上依赖于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,然后在尝试编译脚本时引用它们,但我完全不知道如何做

如果您能给我一个关于以下方面的线索,我将非常感激:

  • 正确设置staging dir(我一直在尝试使用PATH/staging\u dir变量,但没有成功)

  • 如何编译curl/pcap库(在编译脚本时使用,而不是用这些库替换我机器中使用的库)

  • 编译脚本时应该包含哪些标志或命令

  • 我正在使用Ubuntu 14.04


    谢谢。

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

    (用您的工具链替换arm none linux gnueabi)

    交叉编译libpcap

    1) 首先配置libpcap,如下所示

    ./configure --prefix=<install/path> --host=arm-none-linux-gnueabi --with-pcap=linux
    
    3) 最后安装它

    make install
    
    交叉编译libcurl

    1) 配置

    ./configure --prefix=<install/path> --host=arm-none-linux-gnueabi 
    
    /configure--prefix=--host=arm none linux gnueabi
    
    然后执行libpcap的步骤2和3

    如果您需要这些特性中的其他特性,那么您也必须交叉编译这些依赖项

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