gpt4 book ai didi

c - 为 ARM 交叉编译时 header 子目录错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:59:44 25 4
gpt4 key购买 nike

我正在尝试使用 x64 机器和 this 为 ARM(树莓派 2)交叉编译一个应用程序(tvheadend)工具链。

我正在使用以下命令行来配置编译:./configure --arch=arm-linux-gnueabihf --cc=arm-linux-gnueabihf-gcc --disable-avahi --release --cflags=-DOPENSSL_USE_DEPRECATED 然后我只是制作

问题发生在源文件src/utils.c的编译过程中:该文件包含string.h,它是从工具链包含目录中正确选择的(让我们说 ARMTOOLCHAIN/usr/include),然后是 string2.h,它位于 ARMTOOLCHAIN/usr/include/arm-linux-gnueabihf/bits,是从系统目录中选择的,而不是 ARMTOOLCHAIN/usr/include/arm-linux-gnueabihf/bits

In file included from /usr/include/x86_64-linux-gnu/bits/byteswap.h:35:0,
from ARMTOOLCHAIN/usr/include/endian.h:61,
from /usr/include/x86_64-linux-gnu/bits/string2.h:51,
from ARMTOOLCHAIN/usr/include/string.h:637,
from src/utils.c:21:
src/utils.c: In function ‘sbuf_put_be16’:
src/utils.c:397:9: error: invalid 'asm': invalid operand for code 'w'
u16 = htons(u16);
^

问题是编译器不会在 ARMTOOLCHAIN/usr/include/arm-linux-gnueabihf 中搜索 bits 子目录。我尝试将 -IARMTOOLCHAIN/usr/include/arm-linux-gnueabihf 指定为选项,并在 ARMTOOLCHAIN/usr/include 中创建指向 bits 的符号链接(symbolic link)(避免 arm-linux-gnueabihf),但这些都不起作用。

最佳答案

尝试在您的configure 调用中修改cflags:

--cflags="-DOPENSSL_USE_DEPRECATED -nostdinc -nostdinc++"

关于c - 为 ARM 交叉编译时 header 子目录错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34532481/

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