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

2024-02-10

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

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

我不知道当我用gcc(或cc)编译时,它编译成功了。但是,当我交叉编译到 Arm 架构时,出现了错误。 这是我的 Makefile:

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

我确信我的文件夹“lib”中存在库“libappweb.so”

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

Thanks,


你知道如何使用-I海湾合作委员会的选择?

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

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

FLAG = -lappweb -lmpr

to

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么交叉编译Arm Linux GCC出错? 的相关文章

随机推荐