CMake rv1109交叉编译环境搭建

安装vmware虚拟机

  • 准备安装包VMware-workstation-full-15.5.1-15018445.exe
    下载地址
  • 安装
    参考资料

在vmware上安装Linux环境

  • 准备安装包ubuntu-18.04.4-desktop-amd64.iso
    下载地址
  • 安装
    参考资料

安装rv1109交叉编译工具链

  • 准备安装包rv1109_toolchain_release.tar.bz2
    下载地址
  • 解压安装包rv1109_toolchain_release.tar.bz2
    tar -zxvf rv1109_toolchain_release.tar.bz2
    
  • 运行安装包脚本安装
    sudo ./rv1109-cross.install
    
  • 配置环境变量~/.bashrc
    export RK_GCC_APP_PATH=/opt/rv1126_rv1109/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf
    export PATH=$PATH:$RK_GCC_APP_PATH/bin
    
  • 安装结果检查
    arm-rv1109-linux-gnueabihf-gcc --version
    
    如下提示则表示安装正确:
    arm-rv1109-linux-gnueabihf-gcc (GNU Toolchain for the A-profile Architecture 8.3-2019.03 (arm-rel-8.36)) 8.3.0
    Copyright (C) 2018 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

工具链使用时常见问题解决方案

  • 若在编译某些工程时,出现cannot find -lnsl 提示的解决方法
    cd /opt/rv1126_rv1109/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib
    ln -s libnsl-2.28.so libnsl.so
    
  • 若在编译某些工程时,出现`GLIBC_2.14’ not found提示的解决方法
    出现如上提示的原因,是因为libstdc++.so库不中不存在该符号,需要找到有此符号的库,并进行替换,具体做法如下:
    • 库下载地址,提取码为1481
    • 替换方法
      1. 替换libm.so.6
        cd /opt/rv1126_rv1109/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib
        cp /mnt/libm.so.6 ./
        
      2. 替换libstdc++.so.6.0.26
         cd /opt/rv1126_rv1109/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/arm-linux-gnueabihf/lib
         cp /mnt/libstdc++.so.6.0.26 ./
         # 强制更改之前的符号链接
         sudo ln -sf libstdc++.so.6.0.26 libstdc++.so
         ```
        

安装CMake

  • 安装
    sudo apt-get update 
    sudo apt-get install cmake
    
  • 安装成功检查
    有类似如下输出则表示,安装cmake成功。
    rabin@ubuntu:~$ cmake --version
    cmake version 3.17.3
    CMake suite maintained and supported by Kitware (kitware.com/cmake).
    

安装一些必要工具

# 代码管理版本库git 
sudo apt install git git-lfs 
# 代码格式化工具
sudo apt install clang-format
# 编译缓存ccache,编译加速用
sudo apt install ccache
# 网络文件系统,通过mount 实现开发板与电脑开发环境资源共享
sudo apt install nfs-kernel-server
# gitlab ci提交前检查使用
pip install pre-commit 
# ninja编译加速用
pip install ninja
#
pip install cmake_format sphinx breathe sphinx_rtd_theme

NFS配置,实现资源共享

  • 配置ubuntu nfs共享目录
    # 在 /etc/exports 文件中添加可以共享的文件夹和允许的客户端地址,
    # 比如/home/share为共享项目路径
    # 编辑exports
    vi /etc/exports
    # 添加如下内容
    /home/share *(rw,sync,no_root_squash,no_subtree_check)
    # 保存退出后,重启nfs服务
    systemctl restart nfs-server.service
    
  • 设备端访问共享目录/home/share
    # 然后在设备端,通过mount就可以读写/home/share目录了
    # 通过ssh进入设备后台,然后mount
    # 以下命令表示将ubuntu上的共享目录/home/share,mount到设备端的/mnt目录,其中192.168.1.39为ubuntu的ip地址,若mount成功,则设备端/mnt目录下内容就为/home/share
    目录下的内容
    mount -t nfs -o nolock 192.168.1.39:/home/share /mnt
    

你可能感兴趣的:(CMake构建自动化,c++,arm开发,bash,git,ci/cd)