Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 与外部库交叉编译Raspberry-复制目标文件夹_C_Linux_Gcc_Cross Compiling_Libraries - Fatal编程技术网

C 与外部库交叉编译Raspberry-复制目标文件夹

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

我正在从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"/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好吗?听起来很有趣。谢谢