gpt4 book ai didi

gcc - 为什么交叉编译Arm Linux GCC 出错?

转载 作者:行者123 更新时间:2023-12-04 14:40:22 26 4
gpt4 key购买 nike

我正在尝试使用 AppWeb,我编写了一个非常简单的程序来将 AppWeb 嵌入到我的应用程序中,它使用了 AppWeb 库中的一个函数。

#include <appweb/appweb.h>
int main(int argc, char** argv)
{
return maRunWebServer("appweb.conf");
}

不知道什么时候用gcc(或者cc)编译,编译成功了。但是,当我交叉编译到 Arm 架构时,一直在出错。这是我的生成文件:

CC = gcc

LIBS = lib

FLAG = -lappweb -lmpr

TEST_TARGET = embed-appweb
OBJS = embed-appweb

all: clean compile

compile: run
$(CC) -Wall -L$(LIBS) $(FLAG) -o $(TEST_TARGET) $(OBJS).o

run:
$(CC) -Wall -L$(LIBS) $(FLAG) -c $(OBJS).c

clean:
@rm -rf $(TEST_TARGET) $(TEST_TARGET).trc *.o *~
@echo "Clean complete"

为了交叉编译,我将“CC = gcc”替换为“CC = arm-linux-gcc”。我的问题中的错误是:

arm-linux-gcc -Wall -Llib -lappweb -lmpr -c embed-appweb.c
embed-appweb.c:1:27: error: appweb/appweb.h: No such file or directory
embed-appweb.c: In function 'main':
embed-appweb.c:4: warning: implicit declaration of function 'maRunWebServer'
make: *** [run] Error 1

而且我确定库“libappweb.so”存在于我的文件夹“lib”中

有人可能会告诉我,为什么会出错?并给我一些建议?

谢谢,

最佳答案

你知道如何使用gcc的-I选项吗?

您收到的错误是由于编译器 (gcc) 可以找到您想要包含的文件。

最简单的解决方案是更改 Makefile 中的 FLAG:

FLAG = -lappweb -lmpr

FLAG = -lappweb -lmpr -I/path/to/my/headers

当然,您必须将/path/to/my/headers 更改为您的 header 所在的真实路径。

关于gcc - 为什么交叉编译Arm Linux GCC 出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8877359/

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