我正在从 Mac OS(主机)交叉编译 C-Code Raspberry Pi B + ,运行 Raspbian Jessie, (目标)。为了在make
期间链接外部库(" WiringPi"和" pthread" ),我使用了一种有点懒惰的方法来复制相关文件夹包含来自目标(即/lib/
,/usr/include/
,/usr/lib/
,/usr/local/lib/
,/usr/local/include/
)的标头和库提前到主机。
我的Cross GCC编译器调用随后被修改为:
arm-linux-gnueabihf-gcc -I"/Path/to/copy/of/target-folders/.../usr/local/include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.o" -o "main.o" "../main.c"
GCC链接器调用被修改为:
arm-linux-gnueabihf-gcc --sysroot=/Path/to/copy/of/target-folders/ -o "BlinkLedCrossCompile" ./main.o -lWiringPi -lpthread
这会将复制的目标文件夹用作sysroot。到目前为止,它没有任何问题。
我的问题是:这是一种有效的方法吗?我可以期待进一步的问题吗?