gpt4 book ai didi

c - 尝试交叉编译 httpry 时出现问题

转载 作者:行者123 更新时间:2023-11-30 16:48:57 25 4
gpt4 key购买 nike

我正在尝试交叉编译 httpry 。我已经交叉编译了libpcap,但是由于某种原因,当我尝试编译httpry时,它似乎无法找到libpcap库。

我必须修改 httpry 的 Makefile 才能尝试交叉编译:

CC              = /usr/bin/arm-linux-gnueabi-gcc
CCFLAGS = -Wall -O3 -funroll-loops -I/home/josh/workbench/libpcap-1.8.1
DEBUGFLAGS = -Wall -g -DDEBUG -I/home/josh/workbench/libpcap-1.8.1

当我尝试编译时,出现以下错误:

josh@LAPTOP-D3KEQ9EM:~/workbench/httpry-0.1.8$ make
/usr/bin/arm-linux-gnueabi-gcc -Wall -O3 -funroll-loops -I/home/josh/workbench/libpcap-1.8.1 -o httpry httpry.c format.c methods.c utility.c rate.c -lpcap -lm -pthread
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: cannot find -lpcap
collect2: error: ld returned 1 exit status
make: *** [httpry] Error 1

所以看来 LD 确实没有找到这个库。出于好奇,我尝试了一下

josh@LAPTOP-D3KEQ9EM:~/workbench/httpry-0.1.8$ ld -L/home/josh/workbench/libpcap-1.8.1 -lpcap
ld: skipping incompatible /home/josh/workbench/libpcap-1.8.1/libpcap.so when searching for -lpcap
ld: skipping incompatible /home/josh/workbench/libpcap-1.8.1/libpcap.a when searching for -lpcap
ld: cannot find -lpcap

似乎我在 PATH 上的 LD 给出了相同的错误,这是因为 libpcap 是针对与我当前架构不同的架构进行交叉编译的。但是我的交叉复杂性 GCC 不使用 PATH LD,它使用自己的版本,当我尝试时,我得到以下内容

josh@LAPTOP-D3KEQ9EM:~/workbench/httpry-0.1.8$ /usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld -L/home/josh/workbench/libpcap-1.8.1 -lpcap
/usr/lib/gcc-cross/arm-linux-gnueabi/4.7/../../../../arm-linux-gnueabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 00000000000081e4

这有点奇怪,对吧?似乎当我运行 ld 时,它能够毫无问题地找到该库,但当 GCC 由于某种原因运行它时却无法找到该库。

我是否遗漏了一些明显的东西?有没有办法我可以找出 gcc 调用 ld 的参数是什么?我尝试使用 -v 或 -###,但我无法在输出中找到任何有用的内容。

谢谢

乔什

最佳答案

看起来 LD 没有在正确的目录中查找。我以为 -I 会确保它确实如此,但事实证明 -L 也是必要的:

CC              = /usr/bin/arm-linux-gnueabi-gcc
CCFLAGS = -Wall -O3 -funroll-loops -I/home/josh/workbench/libpcap-1.8.1 -L/home/josh/workbench/libpcap-1.8.1
DEBUGFLAGS = -Wall -g -DDEBUG -I/home/josh/workbench/libpcap-1.8.1 -L/home/josh/workbench/libpcap-1.8.1

我不完全确定为什么会出现这种情况,并且希望得到解释。 -过去我一直都够了。

关于c - 尝试交叉编译 httpry 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42778739/

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