linux 开发环境搭建_linux 内核开发环境搭建 配置git - CSDN
精华内容
参与话题
  • linux开发环境搭建(整理)

    万次阅读 2020-04-29 12:31:16
    1、安装VMware、安装ubuntu 2、配置网络,保证开发板可以ping通服务器 > 纯ubuntu系统只要保证开发板和ubuntu系统处于同一网段即可。 > 虚拟机中需要注意三点: 1) 开发板、ubuntu系统、windows三者处于同一网段 ...

    1、安装VMware、安装ubuntu
    安装详细步骤:http://blog.csdn.net/u013142781/article/details/50529030

    2、配置网络,保证开发板可以ping通服务器
     > 纯ubuntu系统只要保证开发板和ubuntu系统处于同一网段即可。
     > 虚拟机中需要注意三点:
      1) 开发板、ubuntu系统、windows三者处于同一网段
       ubuntu系统(需单独配置): 192.168.1.8    255.255.255.0
       开发板(需单独配置):        192.168.1.6    255.255.255.0
         SerialCRT软件下Serial-COM1(1)的命令行下
         X6818#:' printenv    // ipaddr / netmask / serverip
         X6818#:' setenv ipaddr 192.168.1.6
         X6818#:' setenv serverip 192.168.1.8
         X6818#:' saveenv
         // 写入环境变量到掉电不丢失的EMMC中
       windows 新网络连接 ip 修改为: 192.168.1.121
         注意修改的是连接开发板的网卡的ip - 方法:拔插开发板网线,看PC上是哪个网络连接。
      2) 设置VMware的桥接模式
       VMware - 【虚拟机】 - 设置 - 网络适配器 - 桥接模式(B)
      3) 选择用于桥接的网卡
       VMware - 【编辑】 - 虚拟网络编辑器 - 桥接模式 - 桥接到(开发板对应的网卡,在本地连接中可以看名字,鼠标放在图标上即可 )
      >> 在串口中执行命令
         X6818#:' ping 192.168.1.8
         看到" host 192.168.1.8 is alive "此行内容即为ping通,成功。
         注意:
          a. 不能主机ping开发板;
          b. 第一次执行ping时不成功,忽略;(一直ping不通检查网线)

    3、安装、配置、启动FTP、SSH或NFS服务
    1) 准备使用软件维护工具

    第一次是用apt-get安装程序时,需要完成两件事:
    ① 修改/etc/apt/sources.list,将其中注释掉的网址打开。(已打开则不用管)
    ② 更新可用的程序列表。
        $:' sudo apt-get update

    2) 安装、配置、启动服务
    使用tftp协议的方式完成windows下的ubootpak.bin的下载
     tftp:tftp是ftp协议的简化版本,其中没有用户管理的功能。
    tftp服务器
     1) 安装tftp软件 --->
      联网方式:$:' sudo apt-get install tftpd-hpa [-d]
      // VM联外网的方式:设置 - 网络适配器 - NAT,ubuntu ip自动获得
      非联网方式:
      $:' cd /home/usrname/Downloads/tftp
      $:' sudo dpkg -i *.deb
     2) 配置tftp server :
      $:' sudo vi /etc/default/tftpd-hpa
      ---> TFTP_DIRECTORY="/tftpboot"    // tftp客户端登陆后文件默认目录
     3) 要想让新的配置生效需要重启tftp server ,重启方式:
      $:' sudo /etc/init.d/tftpd-hpa restart
     4) 将要供客户端下载的文件拷贝到/tftpboot/目录下
      $:' sudo cp /mnt/hgfs/arm/env/ubootpak.bin /tftpboot/
      //  $:' sudo chmod a+w /tftpboot/ -R       让拷贝可以省去sudo命令,方便快捷。
    测试tftp工具
    // 确认serverip= 192.168.1.8
    X6818#:' tftp 0x48000000 ubootpak.bin
     该命令下载ubootpak.bin到dram(内存)的0x48000000为开始的地址上了。
     // 0x48000000 是物理地址,它是开发板上的物理地址,该物理地址对应的是哪个ddram,详见 cpu datasheet。
    X6818#:' update_mmc 2 2ndboot 0x48000000 0x200 0x53bb0
     // 2: 2th mmc 存储设备(SD0 - 0,SD1 - 1,EMMC - 2)
     // 2ndboot:要更新的分区
     // 0x48000000:源数据地址
     // 0x200:源数据写入2ndboot分区的便宜(实际有512kb)
     // 0x53bb0:写入的字节数(ubootpak.bin文件下载下来的大小 )

    nfs网络】用于连接根文件系统
    这种方式一般用于开发调试阶段。
    1. 服务器端设置 - PC-ubuntu-linux "在linux没有nfs服务时 执行1."
         1) 安装nfs server
             联网:$:' sudo apt-get install nfs-kernel-server
             未联网:$:' cd ~/Downloads/nfs/
                          $:' sudo dpkg -i *.deb
         2) 准备根文件系统数据
             $:' env/rootfs_qt.tar.bz2
             $:' cd /opt/
             $:' cp /mnt/hgfs/porting/env/rootfs_qt.tar.bz2 .
             $:' sudo tar xvf *.bz2
         3) 对服务器进行配置
             配置PC机上的哪些目录可以让客户端通过nfs方式访问
             $:' sudo vi /etc/exports
              /opt/rootfs  *(rw,sync,no_root_squash)
              '/opt/rootfs':允许客户端通过nfs方式访问的目录
              /* ubuntu-linux下操作该目录,即可同步到开发板linux根目录 */
              *:所有客户端都可以访问
                    192.168.1.* 代表客户端IP为192.168.1.X可以访问
              rw:客户端对目录有读写权限
              sync:同步 // man 2 sync; 重要的write函数写入数据后可加。
              no_root_squash:权限,角色
          4) 对新的配置重启nfs服务
              $:' sudo /etc/init.d/nfs-kernel-server restart
              // 看到4个 [ OK ] 重启成功。
    2. 客户端设置 - 开发板
          #:' reboot
          // 进入u-boot的命令行,3秒倒计时按空格
          #:' setenv bootargs root=/dev/nfs nfsroot=192.168.1.8:/opt/rootfs ip=192.168.1.6:192.168.1.8:192.168.1.1:255.255.255.0 lcd=vs070cxn tp=gslx680-linux console=ttySAC0,115200 maxcpus=1
                /dev/nfs:属于固定写法。只要是nfs方式挂在网络文件系统
          #:' saveenv
          // uboot下 re 命令,不做任何操作等待 starting kernel启动完全
          #:' re
                Welcome to X6818
                usrname login: root
                Password: 123456
                成功!!!
           #:' cd /

    4、在linux中安装基本的开发环境
    ① 安装C函数库的man手册
        $:' sudo apt-get install manpages-dev
    ② 安装ctags代码阅读工具
        $:' sudo apt-get install ctags

    5、安装交叉编译工具链
     arm-cortex_a9-eabi-4.7-eglibc-2.18.tar.gz
     权限不够时解决方法:
     1> $:' sudo ...
     2> $:' sudo chmod +w /opt/ -R
     3> $:' sudo chmod 777 /opt/ -R

     $:' cd ~/opt/
     $:' sudo cp ~/workdir/arm..<table>/arm... .tar.gz .
     $:' sudo tar xvf *.gz
     >>位置:/opt/arm-cortex_a9-eabi-4.7-eglibc-2.18/bin/
     ' arm-cortex_a9-linux-gnueabi-gcc
     $:' sudo vi /etc/environment
     // 将路径添加到PATH环境变量中

    单独自行扩展:
        自己制作工具链,安装包:crosstool-0.43.tar.gz
        http://blog.csdn.net/u011057439/article/details/51863050
        http://blog.csdn.net/lhw88117/article/details/7183896
        https://wenku.baidu.com/view/00106e16a216147917112837.html
        // 目标是生成可以使用 arm-linux-gcc 或 arm-linux-g++ 编译

    ----------------------------------------------------------------------------------------------------------------------
    开发环境搭建精简版(个人实践整理):

     

    【PC】
    1、安装虚拟机
        VMware 10.0.4
    
    2、安装linux到虚拟机
        ubuntu-64bit
    
    3、安装辅助工具
        串口工具SecureCRT
        Editplus编辑器
        Source Insignt3(免安装版)
    
    4、调试网段ip配置
        PC端网线ip:192.168.1.121(同一网段即可)
        ubuntu-linux:192.168.1.8  255.255.255.0
        开发板ipaddr:192.168.1.6 (serverip:192.168.1.8)
        设置VMware的桥接模式:VMware - 【虚拟机】 - 设置 - 网络适配器 - 桥接模式(B)
        选择用于桥接的网卡:VMware - 【编辑】 - 虚拟网络编辑器 - 桥接模式 - 桥接到(开发板对应的网卡)
    
    【VM-ubuntu】
    1、命令行提示符
        $: vi ~/.bashrc
            export PS1='[\W]\$: '
        $: bash
    
    2、配置vimrc
        $: vi ~/.vimrc
        set nu
        set ts=4
        set autoindent
        set cindent
        set tabstop=4
        set softtabstop=4
        set shiftwidth=4
        【vim终端】颜色方案:XTerm
    
    3、安装arm交叉编译器
        arm-linux-gcc/
        $: cp arm-linux-gcc/...gz /opt/
        $: tar -xvf *.gz
        配置PATH环境变量:~/.bashrc 加入 PATH=/opt/arm-c...-2.18/bin:$PATH
        $: source ~/.bashrc
    
    4、安装tftp服务器
        tftp/
        $: sudo dpkg -i *.deb
        $: sudo /etc/init.d/tftpd-hpa restart
        $: sudo chmod a+w /tftpboot/ -R
    
    5、安装ctags代码阅读
        ctags-5.8.tar.gz/
        $: tar -xvf ctags-5.8.tar.gz
        $: cd ctags-5.8
        $: ./configure
        $: make
        $: make install
        安装结束后,使用ctags命令测试是否成功
        或whatis ctags, whereis ctags等
    
     * 其他根据情况安装
    界面开发:QT


     

    展开全文
  • linux系统开发环境搭建

    千次阅读 2018-06-26 15:36:49
    做linux开发,不论是应用开发还是bsp,首先要做的...后来,大多就在使用vMwareworkstation+ubuntu来搭建linux开发环境。下边就大概总结一下:1、下载和安装vMwareworkstation 、Ubuntu安装详细步骤:http://blog.c...

    做linux开发,不论是应用开发还是bsp,首先要做的就是搭建开发环境。

    早先进入这个行业的习惯于使用一个轻量级的虚拟机软件vMware player+redhat的组合来构建开发环境。后来,大多就在使用vMwareworkstation+ubuntu来搭建linux开发环境。下边就大概总结一下:

    1、下载和安装vMwareworkstation 、Ubuntu

    安装详细步骤:http://blog.csdn.net/u013142781/article/details/50529030

    2、虚拟机Ubuntu上安装nfs服务器
        nfs是为了方便后边的linux访问linux,比如做文件系统移植时的linux文件系统挂载,应用程序以及驱动开发中的交叉编译后方便立刻在虚拟机上挂载的文件系统上去调试。
    具体步骤如下:

            a、虚拟机Ubuntu下执行命令#sudo apt-get install nfs-kernel-server

            

            b、执行命令#mkdir /home/liufei/nfs

            在自定义目录下建立nfs目录

            c、执行#sudo vi /etc/exports

            在最后一行添加/home/liufei/nfs *(rw,sync,no_root_squash,no_subtree_check)

            

            /home/liufei/nfs *(rw,sync,no_root_squash,no_subtree_check)这一行的含义是:

                /home/liufei/nfs:与nfs服务客户端共享的目录,这个路径必须和前面创建的文件的路径一致

                *:允许所有的网段访问,也可以使用具体的IP

                rw:挂接此目录的客户端对该共享目录具有读写权限

                sync:资料同步写入内存和硬盘

                no_root_squash:root用户具有对根目录的完全管理访问权限。

                no_subtree_check:不检查父目录的权限。

        d、执行命令:#sudo /etc/init.d/portmap restart 重启portmap服务。nfs是一个RPC程序,使用它前,需要映射好端口,通过portmap设定。

        

      e、执行命令:#sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务。


    f、执行#sudo mount -t nfs 192.168.179.131:/home/liufei/nfs / mnt 命令测试nfs是否安装成功

      其中192.168.179.131是虚拟机的IP,/home/liufei/nfs是之前创建的nfs挂载目录,执行完成后可以在/home/liufei/nfs /目录下创建文件test.txt

       执行命令#touch /home/liufei/nfs/test.txt

    执行完成后进入mnt目录就可以看到刚才创建的那个文件


    以上成功搭建nfs服务器

    3、安装samb服务器

    samb是为了方便windows与linux的通信,实现虚拟机上Ubuntu系统与windows上文件的快速互相访问(当然,这个可以用虚拟机自带的共享文件来取代)。

    具体可以参照这篇博客: https://blog.csdn.net/u010164190/article/details/52083574

    4、安装ftp服务器

    ftp服务器同样是为了方便虚拟机Ubuntu与windows之间快速传输文件,这个配合windows上的“secure FTP.exe“应用程序,可以实现文件的直接拖动,非常方便。

    安装和配置方法:

    a、执行#sudo apt-get install vsftpd命令安装ftp服务器

    5、搭建交叉编译环境






    展开全文
  • Linux开发环境配置

    万次阅读 2016-11-24 11:15:52
    一、学习Linux开发的必要性 现在大部分的公司都改用Linux,尤其是银行。可见Linux是相对windows是安全的多。windows不是开源的,也就是你不知道它的源代码,我们无法或者很难在windows下面创建管理员用户,以管理员...

    一、学习Linux开发的必要性

    现在大部分的公司都改用Linux,尤其是银行。可见Linux是相对windows是安全的多。windows不是开源的,也就是你不知道它的源代码,我们无法或者很难在windows下面创建管理员用户,以管理员的身份去管理公司的服务器。如果微软想做一些手脚那是轻而易举的,而且还不被我们发现。Linux下就不同了,源代码是开源的。可以以管理员的身份管理公司里面近百万的服务器。如果源代码被做了手脚很容易就被发现。所以Linux要比windows安全的多。

    Linux是一个领先的操作系统,可以运行在服务器和其他大型平台之上,如大型机和超级计算机。世界上500个最快的超级计算机90%以上运行Linux发行版或变种,最快的前10名超级计算机运行的都是Linux操作系统。 Linux也广泛应用在嵌入式设备上,如手机、平板电脑、路由器、电视和电子游戏机等。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上。

    Linux将不会取代Windows成为主流的桌面操作环境, 但它很有可能在信息接入设备中独霸天下。 为什么Linux无法取代Windows呢?最主要的原因是大多数最终用户无法选择操作系统。 研究表明:用户在购买软件时,首先考虑的是自己的计算需求,其次才是运行这些软件 的计算机。目前的状况是:大部分软件是为PC机和Mac机开发,而这些机器运行的操作 系统绝大多数是Windows或Mac OS,可以在Linux平台上运行的应用软件还很少。不过 这种情况正在发生改变。Linux的支持者正在努力使Windows应用可以在Linux上运行。 例如,著名的桌面软件开发商Corel公司已经使其大多数产品能够在Linux上运行,其中 包括久负盛名的CorelDraw和WordPerfect。

    要学习Linux开发当然不能只学习C++,也不能只学习Java。Linux开发有丰富的界面,完全没有想象中的那么难。下面以大家比较熟悉的Ubuntu x64系统为例分别介绍Linux C++和Java开发环境 。

    二、准备工作

    远程操作有时候更方便。下面准备一些远程操作必要的东西:SSH、VNC和SAMBA。

    1、SSH和PUTTY

    远程操作建议安装SSH,运行命令如下:

    apt-get install openssh-server -y

    安装成功后可以用PUTTY连接了。然后切换到root用户,运行命令:
    sudo -i

    输入当前用户的密码,而非root用户的密码,就可以切换到root用户。效果如下:

    2、远程桌面和TigerVNC

    Linux也有远程桌面,TigerVNC开源免费还很好用,比Ubuntu源里的VNC好用,可惜Ubuntu源本身不提供。先运行命令下载:

    wget https://bintray.com/artifact/download/tigervnc/stable/ubuntu-14.04LTS/amd64/tigervncserver_1.4.3-3ubuntu1_amd64.deb

    然后安装:

    dpkg -i tigervncserver_1.4.3-3ubuntu1_amd64.deb

    如果提示有依赖关系不满足的错误,不必手机一一安装依赖包,而是运行:

    apt-get -f install

    启动VNC服务器:

    vncserver


    此密码不是系统的用户密码,而是VNC连接校验密码,用于防止非法的VNC连接。现在可以在Windows操作Ubuntu了。双击运行vncviewer64-1.7.0.exe,效果如下:

    注意TigerVNC客户端默认VNC服务器端口是5900+用户输入的端口号。我的服务器端口号是5901,所有我在连接的时候只输入IP:1就可以了,连接成功后效果如下:


    3、Linux的Windows共享和SAMBA

    Windows远程共享可以使用mount命令,代码如下:

    mount -t cifs //<Windows共享IP>/共享文件夹路径 /media/<linux系统路径> -o username=你的用户名,password=你的密码

    Samba是一个把Linux共享给Windows和打开Windows共享的工具,安装命令如下:

    apt-get install samba samba-common -y

    设置Linux共享和Windows的方法类似。打开Ubuntu文件管理器,选择要共享的文件夹,右键,选择共享,如下所示:

    点击create share按钮就大功告成。

    三、搭建Linux C++开发环境

    1、安装基本编译环境

    MinGW32也有x64位版本。运行命令:

    apt-get install mingw32 mingw32-runtime mingw-w64 mingw-w64-common mingw-w64-x86-64-dev mingw-w64-tools -y

    安装成功后通过命令查询安装结果:


    2、安装GCC编译器

    运行命令:

    apt-get install gcc gcc-multilib gcc-multilib gcc-doc -y

    安装成功后结果如下所示:


    3、安装G++编译器

    运行命令:

    apt-get install g++ g++-multilib -y

    安装成功后结果如下:


    4、安装构建工具

    运行命令:

    apt-get install automake cmake autoconf -y
    安装成功效果如下:


    5、安装GDB调试器

    运行命令:

    apt-get install gdb gdb-doc gdb-mingw-w64 -y

    特别说明一下:GDB64不是x64位系统的调试工具。安装成功后效果如下:


    6、安装KDevelop

    KDevelop是一款功能强大的集成开发环境应用程序。自带的代码补全、代码结构分析等功能不比Visual Studio差。KDevelop-Project诞生于1998年,其目的是为KDE提供一个易用的集成开发环境(Integrated Development Environment)。此后,KDevelop IDE采用GPL进行发布, 它支持很多程序设计语言。KDevelop目的是为KDE提供一个易用的集成开发环境(Integrated Development Environment)。此后,KDevelop IDE采用GPL进行发布,是一个支持多程序设计语言的集成开发环境。它运行于Linux和其它类Unix环境。它本身不包含编译器,而是调用其它编译器来编译程序。KDevelop 透过KParts框架使用编辑器组件。依赖Qt库,预设使用Kate。

    运行命令:

    apt-get install kdevelop kdevelop-dbg -y


    7、检查C++开发环境是否安装成功

    如果使用了多个终端,那么建议打开IDE之前注销后重新登录,以使环境变量的设置起作用。启动KDevelop,新建一个HelloWorld的控制台工程,所有设置使用向导的默认设置。效果如下:

    点击Run菜单,点击Configuration Lauches菜单,选中hello工程,点击add new 按钮,选择Application,输入调试方案名称:debug,点击ok按钮。


    点击build按钮,显示编译成功,效果如下:


    点击Excute按钮,会看到输出文字:Hello World!。至此C++开发环境配置成功结束。

    四、搭建Java开发环境

    Oracle官方网站只提供了适用于Rad Hat和CentOS系列的Java安装包,很多人使用alien工具把rpm格式的安装包转换成deb格式。其实完全没有必要性。下面一步一步配置Java开发环境。首先下载JDK和Eclipse。JDK的下载链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html。注意下载tar.gz格式的压缩包,而不是下载rpm安装包。Eclipse的下载链接:http://www.eclipse.org/downloads/eclipse-packages/。建议下载 J2EE,下载J2SE版本的也是可以的。都在Ubuntu系统里下载,下载都保存到Downloads文件夹下。

    1、配置JDK

    JDK其实不需要安装,包压缩包解压到特定位置以后把环境变量指向解压的位置即可。运行命令:

    mkdir /usr/local/java
    cd /usr/local/java
    chown -R caowei ./
    exit
    chmod 755 -R ./
    tar -xvf ~/Downloads/jdk-8u101-linux-x64.tar.gz
    
    注意不要使用zip解压。运行命令:
    sudo vim /etc/profile
    如果提示没有vim则请先安装vim。在文本末尾追加:

    export JAVA_HOME=/usr/local/java/jdk1.8.0_101
    export JRE_HOME=$JAVA_HOME/jre
    export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
    
    export JAVA_HOME JRE_HOME CLASSPATH PATH

    检查环境变量是否设置成功:

    source /etc/profile
    java -version

    如果报告Java的版本是1.8则配置成功,注销重新登录。如果不愿意重新。否则千万不能注销,而是返回修改直至修改正确。直接注销会导致系统故障。


    2、配置Eclipse

    eclipse工具还是不用介绍了吧。首先创建用于放置eclipse的文件夹,把eclipse解压到这里:

    sudo mkdir /usr/local/eclipse
    cd /usr/local/eclipse
    sudo chown -R caowei ./
    chmod 777 -R ./
    tar -xvf eclipse-jee-neon-R-linux-gtk-x86_64.tar.gz
    mv eclipse j2ee
    
    然后创建eclipse到桌面的快捷方式:

    cd ~/Desktop
    ln -s /usr/local/eclipse/j2ee/eclipse eclipse

    3、检查Java开发环境

    从ubuntu桌面启动eclipse,效果如下:


    新建一个hello的java工程,添加一个类型为HelloWorld,使用向导增加main方法,增加一句输出代码,点击一下运行按钮,效果如下:


    至此Java开发环境配置成功。

    五、总结

    1、搭建C++开发环境需要MinGW、GCC、G++、CMake和GDB。

    2、KDevelop只是一个辅助IDE,还有其它的IDE比如CodeLite、CodeBlocks等,也很不错。

    3、QT安装比较简单,这里不作详细介绍。


    展开全文
  • Linux下C语言开发环境搭建

    千次阅读 2019-09-26 20:39:24
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/liubing8609/article/details/82695528

    GCC编译器简明教程(Linux下C语言开发环境的搭建)

    市面上常见的Linux都是发行版本,典型的Linux发行版包含了Linux内核、桌面环境(例如GNOMEKDEUnity等)和各种常用的必备工具(例如ShellGCCVIMFirefox等),国内使用较多的是CentOSUbuntu(乌班图)、DebianRedhat等。

    Linux主要应用于各种服务器(例如网站服务器、数据库服务器、DNS服务器、邮件服务器、路由器、负载均衡集群等),而不是我们常见的个人电脑。Linux是服务器操作系统的绝对霸主,占据了80%以上的份额,在未来的服务器领域,Linux是大势所趋。这其中,又以CentOSUbuntu为主,CentOS占有压倒性的优势。服务器操作系统80%以上的市场份额被Linux占据,而Linux 80%以上的份额又被CentOS占据。本教程以CentOS为例来讲述如何编译C程序。

    服务器上的Linux是不安装图形界面的,只能在控制台模式下使用,以尽量节省服务器资源。而我们在学习过程中使用的Linux是带图形界面的,以满足初学者的需求,降低学习成本。

    Linux下我们仍然可以使用带界面的、傻瓜式的IDE,例如CodeLiteCLion(收费)、Code::BlocksNetbeansEclipse CDT等。微软的Visual Studio也支持Linux了,在Windows下用惯了Visual Studio的用户也可以毫无障碍地迁移到Linux平台。

    但是作为初学者,我建议大家在命令行模式下编译C语言程序,这样能够了解生成一个可执行程序的详细步骤,以及编译命令的各种设置选项,为以后的LinuxC/C++ 开发打好坚实的基础。

    Gedit 编辑器

    Linux下,很多程序员都推崇使用VimEmacs等命令行模式的编辑器,它们功能强大,逼格够高,不管有没有桌面环境都能使用,是LinuxC/C++程序员必备的神器。但是VimEmacs并不容易上手,使用者需要记忆很多命令和快捷键,熟练才能生巧,所以需要一段时间的学习和适应,这会增加初学者的学习成本,所以这里不推荐大家使用。

    CentOS下有一款自带的图形界面编辑器,叫做GeditGedit是一款简单实用的文本编辑器,界面优雅,支持语法高亮,比Vim容易上手,它和Windows下的编辑器没有什么两样。本教程将Gedit作为C语言代码的编辑器。

    如果你使用的是其它的Linux发行版,可能没有默认安装Gedit,这个时候就得自己安装,具体步骤为:

    $ sudo apt-add-repository ppa:ubuntu-on-rails/ppa   #添加ubuntu的软件源

    $ sudo apt-get update   #更新软件列表

    $ sudo apt-get install gedit-gmate   #安装

    首先,在我们自己的用户目录下新建一个名为demo的文件夹。这个文件夹专门用来存放与C语言相关的文件,例如源文件、目标文件、可执行文件等,它专供我们学习使用。

    用户目录有时候也叫home文件夹或者主文件夹,它的路径是/home/username,其中 username 就是我们登录Linux时使用的用户名。Linux 会在 home 目录下为每一个登录的用户创建一个文件夹,专门用来存放该用户使用到的配置文件、文本文档、图片、可执行程序等,以和其他用户区分开来。

    接下来需要创建一个空白的 main.c 源文件。main.c 其实就是一个纯文本文件,并没有任何特殊格式,但是Linux不像 Windows,可以在右键菜单中新建文本文档,Linux 必须使用命令来创建,如下所示:

    $ cd demo  #进入 demo 目录,这是源文件所在的目录

    $ touch main.c  #使用 touch 命令创建一个名为 main.c 的空文件

    $ gedit main.c  #使用 gedit 命令编辑 main.c

    这样就完成了源文件的创建,并能够使用Gedit编辑源文件了。

    Gedit 中输入下面的C语言代码:

    #include <stdio.h>

    int main()

    {

        puts("C语言中文网");

        return 0;

    }

    输入完成后的效果如下图所示:

    http://c.biancheng.net/cpp/uploads/allimg/171008/1-1G00Q10053154.jpg

    Ctrl+S保存文件,就完成了源代码的编辑工作。此时需要关闭Gedit的窗口,$ gedit main.c命令才算执行结束,才能在控制台继续输入其它命令。

    下图演示了在控制台上的实际效果:

    http://c.biancheng.net/cpp/uploads/allimg/171009/1-1G00910510UJ.jpg

    注意,在CentOS下,使用touch命令创建完main.c后,进入demo目录,在右键菜单中也可以使用Gedit 打开main.c,如下图所示:

    http://c.biancheng.net/cpp/uploads/allimg/171008/1-1G00Q104301H.jpg

    GCC 编译器

    Linux下使用最广泛的 C/C++ 编译器是 GCC,大多数的Linux发行版本都默认安装,不管是开发人员还是初学者,一般都将 GCC 作为Linux下首选的编译工具。本教程也毫不犹豫地使用 GCC 来编译C语言程序。GCC 仅仅是一个编译器,没有界面,必须在命令行模式下使用。通过gcc命令就可以将源文件编译成可执行文件。

    1) 生成可执行程序

    最简单的生成可执行文件的写法为:

    $ cd demo  #进入源文件所在的目录

    $ gcc main.c  # gcc 命令后面紧跟源文件名

    打开 demo 目录,会看到多了一个名为 a.out 的文件,这就是最终生成的可执行文件,如下图所示:

    http://c.biancheng.net/cpp/uploads/allimg/171008/1-1G00Q64J2C5.jpg

    这样就一次性完成了编译和链接的全部过程,非常方便。

    注意:不像 WindowsLinux 不以文件后缀来区分可执行文件,Linux 下的可执行文件后缀理论上可以是任意的,这里的.out只是用来表明它是 GCC 的输出文件。不管源文件的名字是什么,GCC 生成的可执行文件的默认名字始终是a.out

    如果不想使用默认的文件名,那么可以通过-o选项来自定义文件名,例如:

    $ gcc main.c -o main.out

    这样生成的可执行程序的名字就是main.out

    因为Linux下可执行文件的后缀仅仅是一种形式上的,所以可执行文件也可以不带后缀,例如:

    $ gcc main.c -o main

    这样生成的可执行程序的名字就是main

    通过-o选项也可以将可执行文件输出到其他目录,并不一定非得在当前目录下,例如:

    $ gcc main.c -o ./out/main.out

    或者

    $ gcc main.c -o out/main.out

    表示将可执行文件输出到当前目录下的out目录,并命名为main.out./表示当前目录,如果不写,默认也是当前目录。

    注意:out 目录必须存在,如果不存在,gcc 命令不会自动创建,而是抛出一个错误。

    2) 运行可执行程序

    上面我们生成了可执行程序,那么该如何运行它呢?很简单,在控制台中输入程序的名字就可以,如下所示:

    $ ./a.out

    ./表示当前目录,整条命令的意思是运行当前目录下的 a.out 程序。如果不写./Linux 会到系统路径下查找 a.out,而系统路径下显然不存在这个程序,所以会运行失败。

    所谓系统路径,就是环境变量指定的路径,我们可以通过修改环境变量添加自己的路径,或者删除某个路径。很多时候,一条Linux命令对应一个可执行程序,如果执行命令时没有指明路径,那么就会到系统路径下查找对应的程序。

    输入完上面的命令,按下回车键,程序就开始执行了,它会将输出结果直接显示在控制台上,如下所示:

    $ cd demo

    $ gcc main.c

    $ ./a.out

    C语言中文网

    $

    下图演示了在控制台上的实际效果:

    http://c.biancheng.net/cpp/uploads/allimg/171009/1-1G00910095aA.jpg

    如果程序在其它目录下,运行程序时还要带上目录的名字,例如:

    $ ./out/main.out

    或者

    $ out/main.out

    这个时候加不加./都一样,Linux 能够识别出out是一个目录,而不是一个命令,它默认会在当前路径下查找该目录,而不是去系统路径下查找,所以不加./也不会出错。

    注意,如果程序没有执行权限,可以使用sudo命令来增加权限,例如:

    $ sudo chmod 777 a.out

    完整的演示

    为了让读者有一个更加全面的认识,我们不妨将上面两部分的内容连接起来,完整的演示一下从编辑源文件到运行可执行程序的全过程:

    $ cd demo  #进入源文件所在目录

    $ touch main.c  #新建空白的源文件

    $ gedit main.c  #编辑源文件

    $ gcc main.c  #生成可执行程序

    $ ./a.out  #运行可执行程序

    C语言中文网

    $   #继续等待输入其它命令

    下图是在控制台上的实际效果:

    http://c.biancheng.net/cpp/uploads/allimg/171009/1-1G009111F9448.jpg

    分步骤编译

    上面讲解的是通过gcc命令一次性完成编译和链接的整个过程,这样最方便,大家在学习C语言的过程中一般都这么做。实际上,gcc命令也可以将编译和链接分开,每次只完成一项任务。

    1) 编译(Compile

    将源文件编译成目标文件需要使用-c选项,例如:

    gcc -c main.c

    就将 main.c 编译为 main.o。打开 demo 目录,就会看到 main.o

    http://c.biancheng.net/cpp/uploads/allimg/171009/1-1G009130633I6.jpg

    对于微软编译器(内嵌在 Visual C++ 或者 Visual Studio 中),目标文件的后缀为.obj;对于 GCC 编译器,目标文件的后缀为.o

    一个源文件会生成一个目标文件,多个源文件会生成多个目标文件,源文件数目和目标文件数目是一样的。通常情况下,默认的目标文件名字和源文件名字是一样的。

    如果希望自定义目标文件的名字,那么可以使用-o选项,例如:

    gcc -c main.c -o a.o

    这样生成的目标文件的名字就是 a.o

    2) 链接(Link

    gcc命令后面紧跟目标文件的名字,就可以将目标文件链接成为可执行文件,例如:

    gcc main.o

    就将 main.o 链接为 a.out。打开 demo 目录,就会看到 a.out

    gcc命令后面紧跟源文件名字或者目标文件名字都是可以的,gcc命令能够自动识别到底是源文件还是目标文件:如果是源文件,那么要经过编译和链接两个步骤才能生成可执行文件;如果是目标文件,只需要链接就可以了。

    使用-o选项仍然能够自定义可执行文件的名字,例如:

    gcc main.o -o main.out

    这样生成的可执行文件的名字就是 main.out

    下面是一个完整的演示:

    $ cd demo

    $ gcc -c main.c

    $ gcc main.o

    $ ./a.out

    C语言中文网

    在控制台上的真实效果为:

    http://c.biancheng.net/cpp/uploads/allimg/171009/1-1G009131435196.jpg

    展开全文
  • Linux开发环境搭建步骤

    千次阅读 2019-03-29 15:38:37
    虐我千百遍的Linux开发环境搭建步骤一定要做一篇记录 详细步骤如下: (1)在home下新建一个文件夹tmp 在里面放入下载的arm-linux-gcc安装包 (2)执行命令cd tmp (3)执行命令tar xvzf arm-linux-gcc-*.tgz(压缩包名) -C...
  • 文章目录开发工具VIMoh-my-zshIntelliJ IDEAVisual Studio Code命令行工具mycli、pgcli[trans](https://github.com/soimort/translate-shell)tldr、cheathowdoi[fusuma](https://github.com/iberianpig/fusuma)编辑...
  • 我们总会有写开发环境需要用到吧…… Java JDK 安装流程 1.下载JDK-*.tar.gz注意下载对应版本的,如果你不知道你的系统是多少位的,可以使用下面的命令行: sudo uname --m 注意:i686表示的是32位的系统,...
  • 1 Ubuntu系统下载 目录 1 Ubuntu系统下载和使用 2 openwrt交叉编译器配置 ...为了方便读者快速获取到一个完善的开发环境。创建包的ubuntu10虚拟机系统存放在网盘中,路径如下: https://pan.baidu.com...
  • 一步步学习Linux开发环境搭建与使用

    万次阅读 多人点赞 2018-03-18 10:12:02
    00、Linux开发环境搭建与使用1——Linux简史01、Linux开发环境搭建与使用2——Linux系统(ubuntu)安装方案02、Linux开发环境搭建与使用3——通过虚拟机安装系统(ubuntu)03、Linux开发环境搭建与使用4——ubuntu更新...
  • Linux搭建Android开发环境

    千次阅读 2018-07-17 14:30:16
    为什么要在Linux搭建开发环境呢?从直观来说,Android虚拟机在Linux下运行速度更快,而且性能更稳定。  我使用的Linux环境是ubuntu-10.10-desktop-i386。安
  • Linux下C# 开发环境搭建

    万次阅读 2015-08-21 22:49:30
    Linux下C# 开发环境搭建
  • linux搭建iOS开发环境

    万次阅读 2012-08-22 09:56:22
    直接看 https://github.com/javacom/toolchain4 的README,很详细的步骤,基本没问题 . 所需的SDK我备份了 http://code.google.com/p/ios-devel/downloads/list 其中gcc也可以用这个...
  • linux下go开发环境搭建

    千次阅读 2018-09-19 16:31:31
    go github源码下载网址:https://github.com/golang/go ... 本文的安装系统系统:debian8.10 本文安装的go 版本:go version go1.10 linux/amd64   第一步:到https://golang.google.cn/dl/网址中的Achived ...
  • 搭建个人的Windows+Linux+NAS的开发环境

    千次阅读 2019-11-03 21:29:40
    搭建Windows+Linux+NAS的开发环境
  • Linux搭建python开发环境

    千次阅读 2018-03-24 09:10:34
    Linux自带python2,但之前Python 核心团队numpy计划在 2020 年停止支持 Python 2,所以自己动手搭建python3的开发环境下载wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0a1.tar.xz解压tar xvf Python-...
  • 1. PyQt5开发环境搭建

    万次阅读 2019-03-16 15:50:31
    因为我个人使用的是 Linux 还有之前用过Windows 没用过 Mac 所以这里我简单结束 Linux 和 Windows 开发环境搭建 Windows 开发PyQt5环境的搭建 首先安装 python3, 这个不必多说了,不会的自行百度 安装 PyQt5 然后...
  • Ubuntu 12.04 搭建Android开发环境

    千次阅读 2013-07-29 14:10:32
    Ubuntu 12.04 搭建Android开发环境 2013/7/29 Linux环境下搭建Android开发环境 大部分开发人员可能都在Windows下做开发,可能是感觉在Windows下比较方便,我感觉也是。不过作为一名开发者仅局限在一种环境的话,...
  • 瑞芯微RK3399 Linux开发环境搭建

    万次阅读 2018-05-08 10:58:40
    瑞芯微RK3399 Linux开发环境搭建 1. VM+Ubuntu安装 安装包为VMware10.7z 与ubuntu-16.04-desktop-amd64.iso,VM在百度上搜的到,Ubuntu可以去官网上下载,下载地址为ubuntu16.04,安装步骤这里不详细介绍,可参考...
  • linux搭建汇编环境

    万次阅读 2013-01-11 20:27:15
    在windows学习都是用的MASM,那如果在linux下也用MASM呢,怎么办?方法如下: 一.安装 可以通过一些软件,来模拟DOS,可以用Dosbox。如果用的ubuntu,在软件中心就可以...环境搭建 1.在 linux下新建一个 masm 文
  •  linux驱动正常的开发环境搭建有以下几方面; 1、安装好交叉编译工具,比如arm-linux-gcc之类的(不同的开发板厂家时长会提供适合自己板子的交叉编译工具) 2、搭建好nfs(为了后边方便在虚拟机上...
1 2 3 4 5 ... 20
收藏数 114,340
精华内容 45,736
关键字:

linux 开发环境搭建