ARM交叉编译时标头子目录错误

时间:2015-12-30 15:37:59

标签: c linux gcc arm cross-compiling

我正在尝试使用x64机器和this工具链交叉编译ARM(raspberry pi 2)的应用程序(tvheadend)。

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

在编译源文件src/utils.c期间会出现问题:此类文件包含string.h,该文件已从工具链包含目录(例如ARMTOOLCHAIN/usr/include)中正确选择,但随后{位于string2.h内的{1}}是从系统目录中选择的,而不是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内创建bits的符号链接(以避免ARMTOOLCHAIN/usr/include),但这些都不起作用。

1 个答案:

答案 0 :(得分:0)

尝试在cflags调用中修改configure

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