LCCCCC


爱宝宝,爱学习,爱生活的SZUer.


首页

Linux_Android交叉编译


又是一轮圆月时

记录一下对 x86 平台与 arm 平台的交叉编译

1.准备工作

  • 安装 gcc: sudo apt-get install arm-linux-gnueabi-gcc
  • 安装g++: sudo apt-get install arm-linux-gnueabi-g++
  • 安装cmake: sudo apt-get install cmake sudo apt-get install cmake-gui

2.准备toolchain工具

这个工具很强大,可以让 camke 实现全自动! 以 openCV 为例,其中有别人已经造好的轮子。 位于 opencv/platforms/linux 目录中(3.4 版的比较全,2.4 版可能会有缺失,从 3.4 版中拷贝即可)。

3.编译依赖工程——以 openCV 为例

  1. 切换至 opencv 源目录 。
  2. mkdir build_arm
  3. cmake -DCMAKE_TOOLCHAIN_FILE=../platforms/linux/arm-gnueabi.toolchain.cmake ..
  4. 等待直到 cmake 完成 。
  5. 如果安装了cmake-gui可以双击设置编译选项。建议去掉 BUILD_DOCSBUILD_TEST 的勾,然后重新点击 Configure,Generate,生成 cmake cache。
  6. make -j4 开始编译 。

注:如果勾选了 Eigen,注意设置 EIGEN_INCLUDE_PATH 否则可能会出现 fatal error: unsupported/Eigen/MatrixFunctions: No such file or directory错误

3.编译我们的工程

  1. 切换到才工程目录,mkdir build_arm
  2. toolchain拷贝到我们的 build 目录,linux 目录下的几个 toolchain 都一起拷贝。
  3. cmake -DCMAKE_TOOLCHAIN_FILE=./arm-gnueabi.toolchain.cmake ..
  4. 双击CMakeCache.txt指定OpenCV_DIR为刚才编译生成的目录。然后重新点击 Configure,Generate,生成 cmake cache。
  5. make等待编译完成。 6.执行,因为是交叉编译的,在 linux 上执行不了,交叉编译成功。
最近的文章

Vcpkg关闭自动拷贝

VcpkgVcpkg 是由微软维护的 c++包管理工具,非常强大,功能就不说了,自己到官网了解。https://github.com/Microsoft/vcpkg原因由于生成 exe 时自动将链接的 dll 拷贝至 exe 生成目录,当 vcpkg 没有安装在 SSD 时,生成 exe 后还需要等待很久才能完成项目编译。但每次编译时使用的第三方库并没有改变,实际使用是只有第一次需要执行拷贝。关闭自动拷贝功能~~修改 MSBuild 文件,将VcpkgAutoLink选项设置为 false...…

原创分享继续阅读
更早的文章

某猫VPN破解图记

仅记录一下破解过程,一切尽在图片中破解完毕…

原创分享继续阅读