为什么需要交叉编译?
因为这个 libcurl 是安装在我电脑虚拟机里面的,编译出来的是适合 x86-64 运行的
这个文件肯定是无法放到树莓派上面运行的,我在之前的文章有详细的介绍,包括出现错误的截图、怎么安装交叉编译工具都有记录
这样,很明显我们需要把这个curl 库的编译工具指定成交叉编译( arm-linux-gnueabihf-gcc),之前是默认使用gcc 的。
没指定则会出现如下错误
如何指定
用于之前我们的路径是 -I ./curl-7.71.1/_install/include/ -L ./curl-7.71.1/_install/lib -lcurl
, 这时候我不想直接改_install
的内容,这个就让它编译适合 x86-64
运行的的版本,我们另起一个文件
./configure --prefix=$PWD/_installPi --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc
make
make install
做完上面的步骤,你会发现,你多了一个文件 _installPi
然后你就可以顺利的使用交叉编译工具了
arm-linux-gnueabihf-gcc demo4.c -I ./curl-7.71.1/_installPi/include/ -L ./curl-7.71.1/_installPi/lib -lcurl -o test2
这个test2
你是无法在虚拟机中运行的
这个文件需要传到树莓派上运行
scp test2 pi@树莓派的IP地址:/home/pi/tmp
以下是在树莓派上运行的结果,我实现的人脸识别拍照的功能