我一直致力于为 Raspberry Pi 开发设置工具链。设置官方 Raspberry Pi 交叉编译器没有问题,但现在我开始需要一些外部库,如 OpenSSL,以及最近发布的 OpenMAX 库。
将 C/C++ 库集成到交叉编译器中的最简单方法是什么?
我一直致力于为 Raspberry Pi 开发设置工具链。设置官方 Raspberry Pi 交叉编译器没有问题,但现在我开始需要一些外部库,如 OpenSSL,以及最近发布的 OpenMAX 库。
将 C/C++ 库集成到交叉编译器中的最简单方法是什么?
好的,所以我找到了一种将 3rd 方库与交叉编译器一起使用的方法,但它似乎并不是最优的。基本上,我只是将所需的库安装到我的 Raspberry Pi 上(运行 Arch Linux)
pi:# pacman -S libssl-dev
然后用
pi:# tar -zcvf include.tar.gz /usr/include
pi:# tar -zcvf lib.tar.gz /usr/lib
压缩我的 Pi 上的 include 和 lib 目录。
接下来,我将它们复制到运行交叉编译器的本地机器(运行 Debian 挤压的 i686)上sftp
:
debian:$ sftp root@<pi_ip_address>:/usr/include.tar.gz
debian:$ sftp root@<pi_ip_address>:/usr/lib.tar.gz
我使用命令备份了交叉编译器include
和lib
目录(作为 root,因为我的交叉目录位于/opt
)
debian:# tar -zcvf OLDinclude.tar.gz ./include
debian:# tar -zcvf OLDlib.tar.gz ./lib
并继续将档案从 Pi 提取到交叉编译器的sysroot/usr/
目录。
最后,为了测试它是否有效,我使用库编译了一个程序,同时使用<cross>-gcc
和<cross>-g++
. . . 它奏效了!现在,我可能会编写一个 bash 脚本来为我处理大部分这些步骤。如果有人对如何简化此过程有任何提示,请告知。
注意:对于像我这样的其他Linux新手,'$'
代表普通用户shell,而'#'
代表超级用户(即root)shell。普通用户可以使用该su
命令升级为超级用户。