C 与外部库交叉编译Raspberry-复制目标文件夹
我正在从MacOS(主机)为Raspberry Pi B+交叉编译C代码,运行Raspbian Jessie(目标)。为了在C 与外部库交叉编译Raspberry-复制目标文件夹,c,linux,gcc,cross-compiling,libraries,C,Linux,Gcc,Cross Compiling,Libraries,我正在从MacOS(主机)为Raspberry Pi B+交叉编译C代码,运行Raspbian Jessie(目标)。为了在make期间链接外部库(“WiringPi”和“pthread”),我使用了一种有点懒惰的方法,从目标复制包含标题和库的相关文件夹(即/lib/,/usr/include/,/usr/lib/,/usr/local/lib/,/usr/local/include>)请提前安装到主机 然后,我的跨GCC编译器调用被修改为: arm-linux-gnueabihf-gcc -I
make
期间链接外部库(“WiringPi”和“pthread”),我使用了一种有点懒惰的方法,从目标复制包含标题和库的相关文件夹(即/lib/
,/usr/include/
,/usr/lib/
,/usr/local/lib/
,/usr/local/include>)请提前安装到主机
然后,我的跨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"
arm-linux-gnueabihf-gcc --sysroot=/Path/to/copy/of/target-folders/ -o "BlinkLedCrossCompile" ./main.o -lWiringPi -lpthread
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"
arm-linux-gnueabihf-gcc --sysroot=/Path/to/copy/of/target-folders/ -o "BlinkLedCrossCompile" ./main.o -lWiringPi -lpthread
这会将复制的目标文件夹用作sysroot。到目前为止,它的工作没有任何问题
我的问题是:这是一种有效的方法吗?我可以期待进一步的问题吗?。如果你看一下Yocto的poky tool chain环境设置,你会发现他们使用的是完全相同的--sysroot
方法。@user3528438请给我们一个正式的URL好吗?听起来很有趣。谢谢