安装完linux之后记得系统更新,更新使用apt命令,如下(记得使用之前使用sudo -i 指令切换到root用户模式)

apt-get update  更新系统软件源,相当于查找更新

apt-get upgrade  更新系统全部待更新的软件

apt-get dist-upgrade 更新系统内核

apt-get clean 清除系统中无用的包

apt-get autoclean 每次安装软件完成之后自动清除无用的包

apt-get install packagename 安装指定名称的软件

apt-get remove package name 卸载指定名称的软件

apt-cache search packagename 从软件元中查找指定软件

apt-get source packagename 获取软件的源代码

apt-get -f install 修复安装软件

apt-get reinstall 重新安装软件

系统安装完成之后记得安装三个服务

1.vsftpd

apt-get install vsftpd

安装完成之后打开配置文件,配置文件在

/etc/vsftpd.conf中,打开两个注释(最新版的默认打开了)

local_enable=YES

write_enable=YES

对服务进行控制使用service vsftpd restart...

第一个允许本地用户登录 第二个允许上传

2.安装ssh服务

apt-get install openssh-server

安装完成之后配置文件在/etc/ssh/sshd-config,不需要修改

对服务状态进行修改

service ssh restart

3.安装nfs服务

apt-get nfs-kernel-server portmap

配置文件

/etc/exports,该文件决定那些目录共享,可以添加自己的目录,如下

/work/nfs_root *(rw,sync,no_root_squash,no_subtree_check)

最后一个如果不添加会有警告

修改服务状态

service nfs_kernel_server restart

然后在主机中添加基本工具链,使用

apt-get install build-essential

添加语法词法分析器

apt-get install bison flex

安装C函数库手册

apt-get install manpage-dev

查看安装好的gcc与gdb的版本

gcc --version

gdb --version

安装额外的增强型软件

apt-get install autoconf automake  //生成工程makefile的工具

apt-get install binutil-doc cpp-doc gcc-doc glibc-doc stl-manual  //其他程序的用户手册

查看手册使用man 函数名的方法,退出按q

解压得到gcc-3.4.5-glibc-2.3.6,将解压后的文件的bin目录记录下来,最好不要直接添加到环境变量中,用的时候添加,这样可以让系统中有多个不同版本的交叉工具链

系统环境变量的路径为

/etc/environment 在该文件中可以直接添加环境变量

第二种方法是在/etc/profile文件中添加

export PATH=/home/work/gcc-3.4.5-glibc-2.3.6/arm-linux/bin:$PATH,保存之后调用source /etc/profile即可,等号两边不能有空格

第三种方法是打开终端,手动输入以上命令,仅仅对这一次有效,退出命令窗口的时候自动失效

编译linux的时候make menuconfig需要使用ncurses工具包,ubuntu添加该工具的方法是

apt-get install libncurses 一般已经自带了

apt-get install linncurses-dev 安装

一个c,c++文件经过四部才能变成可执行文件

1.预处理

arm-linux-cpp工具,将宏定义和条件编译展开,生成的是后缀i结尾的文件

2.编译

cc1(不是arm-linux-cc1),将高级语言编译成汇编代码,生成.s结尾的文件

3.汇编

arm-linux-as 将汇编码编译成ELF文件,生成.o文件

4.链接

arm-linux-ld 将多个elf文件链接,生成可执行的文件,生成最终.o文件或者.out文件

但是使用

arm-linux-gcc能够一次性完成上述全部步骤

arm-linux-gcc -o hello hello.c

生成目标文件hello.o,-o参数指定生成目标文件文件名

arm-linux-gcc -v -o hello hello.c

-v可以在编译中显示编译的细节

可以通过各种选项来控制arm-linux-gcc的动作

-c 预处理 编译 汇编 但是不做链接,默认生成文件名.o的文件,要想指定文件名,记得用-o 文件名,并放在-c前面

-S 编译之后立即停止,不进行汇编,生成.s文件,要想指定文件名,记得用-o 文件名,并放在-S前面,可以用于查看汇编代码

-E 与处理之后停止,生成.i文件,忽略任何不需要预处理的源文件

-v 显示GCC工具自身的版本号以及编译时候的详细过程

-o 指定目标文件名,否则可执行文件默认a.out,其他默认原文件名.o

举例说明

gcc -c -o main.o main.c

gcc -c -o sub.o sub.c

gcc -o test sub.o main.o

main.c中调用了sub.c的内容,但是不连接是能通过的当.o文件都生成成功之后就可以一次性生成目标文件了

直接生成某个文件的汇编文件

gcc -S -o name.s name.c

注意S必须是大写哦

ARM-LINUX学习笔记-1的更多相关文章

  1. Linux学习笔记——基于鸟哥的Linux私房菜

    Linux学习笔记--基于鸟哥的Linux私房菜 ***** ARM与嵌入式linux的入门建议 (1) 学习基本的裸机编程:ARM7或ARM9,理解硬件架构和控制原理 (这一步是绝对的根基) (2) ...

  2. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  3. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  4. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

  5. 20160127 linux 学习笔记

    Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...

  6. linux —— 学习笔记(汇总)

    笔记目录:一.系统知识 和 基本概念                    二.常用操作                   三.系统管理(内存.设备.服务等管理)                   ...

  7. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

  8. Linux~学习笔记目录索引

    回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...

  9. deepin linux学习笔记(四)进不去图形界面怎么办?

    目录 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 更换成lxde桌面 进不去图形界面怎么办? 总结 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 生命不息 ...

  10. deepin linux 学习笔记(二)——文本编辑器

    目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...

随机推荐

  1. 转 由一次磁盘告警引发的血案:du 和 ls 的区别

    如果你完全不明白或者完全明白图片含义, 那么你不用继续往下看了. 否则, 这篇文章也许正是你需要的. 背景 确切地说,不是收到的自动告警短信或者邮件告诉我某机器上的磁盘满了,而是某同学人肉发现该机器写 ...

  2. Android中获取网络数据时的分页加载

    //此实在Fragment中实现的,黄色部分为自动加载,红色部分是需要注意的和手动加载,    蓝色部分是睡眠时间,自我感觉不用写  ,还有就是手动加载时,不知道为什么进去后显示的就是最后一行,求大神 ...

  3. ==和equals的异同

    == 和 Equals 的区别 1. == 是一个运算符. 2.Equals则是string对象的方法,可以.(点)出来. 我们比较无非就是这两种 1.基本数据类型比较 2.引用对象比较 1.基本数据 ...

  4. HDU 1054 Strategic Game(树形DP)

    Strategic Game Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  5. android 报错之noclassdeffounderror

    解决方案1: 导入第3方jar包问题,明明导入了jar但还是报java.lang.NoClassDefFoundError解决步骤:1.在Android项目根目录下新建一个lib文件夹:2.把你需要导 ...

  6. linux下安装rabbitmq

    1.安装erlang虚拟机 Rabbitmq基于erlang语言开发,所有需要安装erlang虚拟机.安装erlang有两种方式: 第一种:使用yum安装: wget -O /etc/yum.repo ...

  7. PAT (Advanced Level) 1109. Group Photo (25)

    简单模拟. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...

  8. JavaScript数组函数unshift、shift、pop、push使用实例

    如何声明数组 s中数组的声明可以有几种方式声明 复制代码代码如下: var tmp = [];  // 简写模式var tmp = new Array(); // 直接new一个var tmp = A ...

  9. 使用Log4net记录日志

    首先说说为什么要进行日志记录.在一个完整的程序系统里面,日志系统是一个非常重要的功能组成部分.它可以记录下系统所产生的所有行为,并按照某种规范表达出来.我们可以使用日志系统所记录的信息为系统进行排错, ...

  10. zf-关于平台的用户名密码的设置

    比如说安徽桐城的用户名密码在哪张表里设置 桐城市人民统一电子政务平台是http://localhost:8088/tc/ptzwfw.action 这个链接 在zwfw_tc 数据库的 PT_LOGI ...