zoukankan      html  css  js  c++  java
  • 第2步

    Ubuntu系统安装完成后,还需要进行一些设置,使得Ubuntu变得更好用。

    第1步:vim编辑器的设置

    vim编辑器设置见:https://www.cnblogs.com/wybliw/p/10237197.html

    这里面介绍了如何将vim搭建成一个好用的IDE,效果图如下。

    目录树,函数预览,智能补全,语法错误提示,自动添加函数注释 等各种强大的功能,等着你去探索。

    第2步:搭建交叉编译环境。

    根据自己的需要,下载相关的交叉编译器,

    我将交叉编译器放在MyTools目录下,然后在该目录下,我创建了bash.bashrc的软连接文件,方便管理交叉编译器。

     

    软连接的创建方法可自行网上搜索,或者等后期我会出一篇《linux基本命令的使用》的文章。

    然后用vim编辑器编辑MyTools目录下的bash.bashrc软连接文件,

    执行命令:

    sudo vim  bahs.bashr

    在最后添加如下内容:

     # ARM 交叉编辑环境配置
       arm_target=AA    # AA 交叉编译器
     # arm_target=BB    # BB 交叉编译器
    
     if [ "$arm_target" = AA ]; then
         export PATH=$PATH:/home/bob/MyTools/AA/4.5.1/bin
     elif [ "$arm_target" = BB ]; then
         export PATH=$PATH:/home/bob/MyTools/BB/4.9.3/bin
     fi
         export GCC_COLORS=auto

    该配置方法,能很方便的切换不同的交叉编译器环境。

    当想要启用AA交叉编译环境时,就取消AA的注释,

    当想要启用BB交叉编译环境时,就取消BB的注释。

    环境配置好后,输入命令:

    arm-none-linux-gnueabihf-gcc -v

    查看当前交叉编译器的版本。

    第3步:安装 pthread 线程 man手册文档

    pthread函数库的man手册,安装

    sudo apt-get install glibc-doc


    只有一小部分pthread的函数,再安装manpages-posix-dev就ok.

    sudo apt-get install manpages-posix manpages-posix-dev

     第4步: Linux 64位系统编译32位链接库

    由于在编译生成  libtest.so  时增加了  -m32  这个参数,导致  libtest.so 是一个 32 位的动态库,而链拉步骤没有改

    gcc -m32 main.c -L./ -o main -ltest 
    gcc -m32 -shared -fPIC test.c -o libtest.so 


    在64位机上编译32位的程序首先需要  ia32-libs 这个动态的支持,看一下  /usr/lib32 这个目录下有没有东西,如果没有, Ubuntu上安装这个包:

    sudo apt-get install ia32-libs ia32-libs-multiarch 


    如果在加入 -m32 这个参数时编译仍然有问题,比如

    In file included from /usr/include/stdio.h:28:0,
    from AVAPIs_Client.c:1:
    /usr/include/features.h:324:26: fatal error:bits/predefs.h: No such file or directory compilation terminated.
    make: *** [all] Error 1


    这通常是由于没有32位的编译工具引起, 需要安装 gcc-multilib  这个软件包.
    在Ubuntu 上安装这个软件包:

    sudo apt-get install gcc-multilib 

     
    g++ 也同样如此:

    sudo apt-get install g++-multilib 


    到这里,编译32位程序应该没有问题了,运行程序的时候记得修改 LD_LIBRARY_PATH 这个变量,否则程序会找不到指定的动态库.

    export LD_LIBRARY_PATH=/home/user/lib/****:$****LD_LIBRARY_PATH

     linux终端按ctrl+s后界面卡住的解决

     ctrl+s 在linux下是暂停终端的作用,停止向终端输入

    解决方案:
    按下 ctrl+q ,恢复向终端输入

    原创,转载请注明出处。

  • 相关阅读:
    vue-music 关于搜索历史本地存储
    Node.js中package.json中^和~的区别
    主流浏览器内核
    pm2 日常使用
    前端验证用户登陆状态(vue.js)
    ng-repeat循环出来的部分调用同一个函数并且实现每个模块之间不能相互干扰
    行内元素垂直方向位置调整的一些感悟和困惑
    由overflow-x:scroll产生的收获
    子代选择器(>)后代选择器(' ')的区别
    content相关属性
  • 原文地址:https://www.cnblogs.com/wybliw/p/11219558.html
Copyright © 2011-2022 走看看