ARM-LINUX学习笔记-1
安装完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的更多相关文章
- Linux学习笔记——基于鸟哥的Linux私房菜
Linux学习笔记--基于鸟哥的Linux私房菜 ***** ARM与嵌入式linux的入门建议 (1) 学习基本的裸机编程:ARM7或ARM9,理解硬件架构和控制原理 (这一步是绝对的根基) (2) ...
- Linux 学习笔记
Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...
- linux学习笔记2-linux的常用命令
第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...
- Linux学习笔记(一)2015.4.13
研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...
- 20160127 linux 学习笔记
Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...
- linux —— 学习笔记(汇总)
笔记目录:一.系统知识 和 基本概念 二.常用操作 三.系统管理(内存.设备.服务等管理) ...
- Linux学习笔记-林耐斯Notes-Linux就该这么学
Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...
- Linux~学习笔记目录索引
回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...
- deepin linux学习笔记(四)进不去图形界面怎么办?
目录 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 更换成lxde桌面 进不去图形界面怎么办? 总结 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 生命不息 ...
- deepin linux 学习笔记(二)——文本编辑器
目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...
随机推荐
- Tomcat服务器
常见的web服务器 1. WebLogic是BEA公司的产品,是目前应用最广泛的web服务器,支持J2EE规范(J2EE里有13种技术),商业产品,收费的.银行,证券等对并发,安全要求高的时候用,一般 ...
- 内存管理 & 内存优化技巧 浅析
内存管理 浅析 下列行为都会增加一个app的内存占用: 1.创建一个OC对象: 2.定义一个变量: 3.调用一个函数或者方法. 如果app占用内存过大,系统可能会强制关闭app,造成闪退现象,影响用户 ...
- setter getter 属性 点语法
转载自:http://liuyafang.blog.51cto.com/8837978/1543715 什么时setter,getter, 在OC里, 为实例变量赋zhi的方法称作setter(设置器 ...
- linux shell 远程执行命令
经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...
- HDU 4460 Friend Chains(map + spfa)
Friend Chains Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total ...
- 使用Github搭建个人博客网站
1 新建一个repo,创建一个没有父节点的分支gh-pages(github规定,只有该分支中的页面,才会生成网页文件): mkdir jekyll_demo cd jekyll_demo git i ...
- myEclipse JSP 调用 IDL8.2 配置
新安装了Envi5.0 IDL8.2,路径改动了,一些配置也要随之改动.现在总结一下,JSP调用IDL的配置. jar包配置,环境变量配置,dll配置,tomcat路径配置,tomcat运行选项配置, ...
- 转:selenium webdriver 执行javascript代码
在用selenium webdriver 编写web页面的自动化测试代码时,可能需要执行一些javascript代码,selenium本身就支持执行js,我们在代码中import org.openqa ...
- 高性能IO模型浅析(转)
转自:http://www.cnblogs.com/fanzhidongyzby/p/4098546.html 是我目前看到的解释IO模型最清晰的文章,当然啦,如果想要详细的进一步了解还是继续啃蓝宝书 ...
- Java 8新特性探究(九)跟OOM:Permgen说再见吧
PermGen space简单介绍 元空间(MetaSpace)一种新的内存空间诞生 PermGen 空间的状况 Metaspace 内存分配模型 Metaspace 容量 Metaspace 垃圾回 ...