ubuntu linux编译环境搭建,Ubuntu14.04开发环境搭建

Ubuntu14.04开发环境搭建

嵌入式开发过程中很重要的一环节就是开发环境的搭建,开发环境搭建的好可以很好的提高开发效率。其中关键的一部就是挂载运行程序,对于程序的挂载运行需要借助NFS服务器,下面介绍windows和linux操作系统下NFS服务器的搭建。

1.1 Ubuntu14.04系统安装

对于ubuntu系统的安装有两种方式,一种是安装在虚拟机里(vbox或vmware)另外是直接安装在裸机上。对于本文主要是针对裸机的安装,而对于虚拟机的安装也类似甚至还更加简单。作者建议对于做嵌入式开发,个人觉得安装一个linux系统在你的裸机上会更好,一来速度更改,特别对于有大型工程要进行编译的(如qt)效果特别明显,而来现在ubuntu系统里面有足够多的软件满足你的开发需求。如果实在是离不开windows的话可以在你的linux系统里安装个虚拟机,在虚拟机里安装个windows系统,这样开发效率也会更高。呵呵、、、以上纯属个人理解。Windows粉丝绕道!

对于ubuntu14.04系统的安装主要分两步:

1、制作ubuntu14.04的系统安装盘,在此作者用的是一款universal-usb-installer U盘制作软件,就是将ubuntu14.04系统刻录到你U盘,待会从U盘启动安装系统就Ok了。对于这步大家可以各显神通。

2、磁盘分区

对于本人电脑硬件如下:i7处理器、8g内存、240g固态硬盘、1t机械硬盘。所以可用的空间比较大,毫无疑问系统肯定是安装在固态硬盘里。作者将240g的固态硬盘划分出40g挂载根目录(/)剩余的空间挂载家目录(/home),而对于机械硬盘划分了三个分区,两个300g分别用于挂载(/opt)与(/var)剩余的格式成了FAT32格式。分区弄好之后接下来的工作就是按部就班的安装系统了。

1.2 Ubuntu14.04系统设置

对于刚刚安装完的系统,我们可以进行一些个性话的设置,从而适合自己的开发习惯,在此作者列出自己习惯的几项设置仅供参考。

1、下载源设置

对于ubuntu系统来说没有网络是万万行不通的,所以安装完系统后的首要任务就是设置网络,对于ubuntu系统默认的下载源是在国外的服务器,这样一来下载速度可能会比较慢,所以作者习惯将它设置成国内的163服务器。

2、屏幕亮度

对于作者本人来说喜欢屏幕亮度暗一些,一天到晚盯着屏幕看太亮了看的眼睛干。而对于ubuntu14.04的系统有一个bug,就是每次开机默认将屏幕亮度设置到最亮,所以需要自己手动进行一些设置,让系统每次起来设置一个你喜欢的屏幕亮度,具体的设置如下:

(1)打开/etc/rc.local脚本

(2)在该脚本exit 0 之前添加一下语句:

echo 731 > /sys/class/backlight/intel_backlight/brightness

这样每次系统开机会读取该脚本从而设置你想要的屏幕亮度。

3、设置terminal提示信息

Ubuntu终端提示信息默认情况下很长,而且还会随着我们进入的目录深度不断的加长,作者对此感觉很不好所以每次安装完系统之后我都要将PS1这个参数修改一下。具体操作如下:

1)打开家目录下的.bashrc脚本

2)将PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '

改为PS1='[\u@\W]\$ '

4、启动NFS服务器

5、停止NFS服务器

1.3 Ubuntu14.04常用软件安装

对于刚刚安装完的系统还很不完整,还不能完成开发的需求,我们还得安装一些工具软件和一些库文件,这样也是我们之前设置网络的一个重要原因。下面作者列出嵌入式开发常用的一些库文件和软件工具以满足开发需求。

1.3.1 输入法安装与设置

安装输入法之前我们的安装一个输入法管理工具,其主要的作用是管理我们在系统中安装的各种输入法,作者习惯用的输入法管理工具是fcitx。可以在终端上输入sudo apt-get install fcitx进行安装,安装完后可以在dash里面搜索fcitx可以看到一个小企鹅的图标,点击小企鹅就可以看到如下界面:

接下来就可以通过它对你系统里面现有的输入法进行管理了,软件的具体设置还是自己默默琢磨吧在此就不啰嗦了。

1.3.2 常用小工具安装

(1)比较工 sudo apt-get installmeld

(2)版本控制器 sudo apt-get installqgit

(3)代码查看工具 sudo apt-get installgeany

(4)文档编辑工具  wps(官网下载)

(5)Svn图像界面sudo apt-get installlRapidSVN

(6)64位系统兼容32位应用需要安装的依赖库sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 libstd32c++6

(7)samba sudo apt-get install samba samba-common system-config-samba python-glade2 gksu

(8)图形编辑能手  sudo apt-get install gimp

(9)金山词霸    sudoapt-get install stardict

(10)有道词典   官网下载

1.3.3 Vbox安装

对于linux环境下要使用windows系统,那么在linux下安装个虚拟机在再虚拟机里面安装个windows是个不错的选择,而这个虚拟机作者选择的是vbox。对于vbox的安装可以直接apt-get installvirtualbox,也可以到官网上去下载你自己喜欢的版本。在虚拟机里怎么安装windows我就不罗嗦了,网上百度,教程很多。接下来想说一下的是vbox下要使用usb功能,众所周知,VirtualBox使用宿主机的USB设备需要安装扩展包。根据自己的vbox的版本,到vbox官网下载对应的扩展包,并安装,安装方法为:file-->prefrence-->extension进行安装,安装完后勾选"启用USB控制器"及"2.0控制器"增加对USB2.0的支持。接下来设置vbox所在的用户组在当前用户组下,设置如下:

1.查看当前用户名:

firephoenix@firephoenix-linux:~$ whoami

firephoenix2.查看vbox所在的组:

firephoenix@firephoenix-linux:~$cat /etc/group | grep vboxvboxusers:x:125:

3.将当前用户加入vbox组:

firephoenix@firephoenix-linux:~$usermod -a -G vboxusers firephoenix4.查看vbox所在的组:

firephoenix@firephoenix-linux:~$cat /etc/group | grep vbox

/vboxusers:x:125:firephoenix

此时,重启系统。再次打开虚拟机,果然,USB设备都已经被识别、访问到了。

1.4 ADB的安装与使用

ADB(android debug bridge)作为android开发的必备调试工具可以加快我们的开发和调试过程,所以学会安装和使用ADB可以很好提高开发效率。对于ADB的安装包可到网上下载,下载完后你可以解压到任何目录下,对于ADB的安装就是一个解压过程。解压完后你就可以使用ADB的各种命令了,但是你必须在ADB的解压目录下运行,为了避免这种情况得将ADB的安装目录导出到环境变量中去。你可以在.bashrc或者.profile中添加导出命令如:export PATH=$PATH:/opt/platform-tools。接下来你就可以在任何路径下输入adb -h检查你的ABD是否可以正常运行了。

ADB安装完后接下来就是要怎么使用了,使用ADB之前需要做一些设置,因为ubuntu这样的系统都是默认以非root身份在运行的,要使用usb调试,需要sudo支持。

$ lsusb 查看usb的使用情况

经过对比插拔usb通过lsusb的打印信息可以知道新插入的usb设备位Bus 003 Device 009: ID 1f3a:1002 Onda (unverified)而我们需要用到的信息就是1f3a就idVendor,1002就是idProduct。接下来在/etc/udev/rules.d/目录下新建70-android.rules(不知道这个文件命名有没有要求就按这个来吧总之这样命名是可以的),并在文件里面添加以下语句:SUBSYSTEM=="usb",ATTRS{idVendor}=="1f3a",ATTRS{idProduct}=="1002",MODE="0666"

保存后退出并设置一下权限

$sudo chmod a+rx /etc/udev/rules.d/70-android.rules

一切准备工作做好之后就可以使用命令重启以下udev设备了

$sudo service udev restart

这样一来我们的ADB应该就可以使用了,如果还是不行的话可以重启一下ADB服务。接下来查看ADB设备如下:

这样就说明一切OK了,接下来就是使用ADB的各种命令进行开发和调试了如:

$adb shell

$adb push

$adb pull

1.5 nfs配置

对于嵌入式开发通过nfs挂载会使得开发变得十分方便,通过挂载可以很方便代码的调试,PC机上交叉编译然后直接在目标机上运行。有了nfs你还可以挂载内核与文件系统,这样也很方便内核与文件系统的调试。既然nfs这么好用那么我们就来说说如何搭建和配置nfs服务器了。

1、安装nfs服务器sudo apt-get install nfs-kernel-server

2、建立一个nfs专用的文件夹mkdir /nfs

3、修改nfs配置文件sudo vi /etc/exports 作者的常用配置如下:

/nfs  200.200.200.*(rw,sync)

/nfs  192.168.1.*(rw,sync)

重启rpcbind服务sudo /etc/init.d/rpcbind restart

重启nfs服务sudo /etc/init.d/nfs-kernel-server restart

挂载    mount -t nfs -o nolock 200.200.200.99:/nfs /mnt

1.6 Tftp

1.6.1 tftp服务的安装

sudo apt-get install tftpd-hpa  tftp-hpa

1.6.2 配置

sudo vim /etc/default/tftpd-hpa

配置如下:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"

#这个是工作目录记得将权限改为777

TFTP_DIRECTORY="/home/firephoenix/work/tftp"

TFTP_ADDRESS="[::]:69"

TFTP_OPTIONS="--secure"

然后重启tftpd-hpa服务sudo service tftpd-hpa restart

1.6.3 本机测试

我的主机本机host地址:192.168.0.1

$ cd /home/firephoenix/work/tftp

$ echo "hello tftp service">>a.txt  #生成一个测试文件,在tftp文件夹下

# tftp 192.168.0.1

tftp 192.168.0.1

tftp> get a.txt

tftp> q

看a.txt是否已经传输过来了,然后我们要检查一下他的内容,因为错误传输,也会生出一个同名空文件

$cd /home/work

#在tftp root文件夹外做一个文件准备传进去

$echo "hello tftp service,put to tftp serive">>send.text

# tftp 192.168.0.1

tftp 192.168.0.1

tftp> put send.txt

tftp: send.txt: No such file or directory

tftp> put send.text

tftp> q

1.7openJDK1.7安装

1、安装JDK      sudo apt-get install openjdk-7-jdk

2、安装JRE     sudo apt-get install openjdk-7-jre

3、配置环境变量

环境变量一般在家目录下的.bashrc脚本中进行导出,如下:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

保存文件退出并执行source .bashrc使得脚本生效

4、检测是否安装成功

在终端中输入java -version查看打印信息,一般成功后打印下面java版本信息:

java versioin "1.7.0_95"

openJDK Runtime Environment (IcedTea 2.6.4) (7u95-2.6.4-0ubuntu0.14.04.2)

openJDK 64-Bit server VM (build 24.95-b01, mixed mode)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/559923.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux arm下硬件驱动程序放哪里,Arm-Linux摄像头驱动程序的移植

Arm开发板上摄像头的移植有两种方法:第一,将驱动程序添加到内核,通过编译内核,烧写到板子上;第二种,通过动态加载摄像头驱动模块的方法进行硬件的驱动。作者首先在PC的linux系统进行摄像驱动程序的移植&…

linux一级常用目录,小蚂蚁学习Linux(3)——Linux一级目录说明和常用命令解释...

根目录下的一级目录解释说明:/etc 配置文件目录 /home 普通用户家目录/bin 命令保存目录 /lib 系统库保存目录/boot 启动目录,启动相关文件 /mnt 系统挂载目录/dev 设备文件保存目录 /media…

linux一键打包工具,常见压缩与打包工具

第二周作业1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。3、请使用命令行展开功能来完成以下练习:(1)、创建/tmp目录下的:a_c, a_d,…

Linux+c+线程的属性,C ++中的多线程

多线程是多任务的一种特殊形式,多任务是一种功能,它使您的计算机可以同时运行两个或多个程序。通常,多任务有两种类型:基于进程和基于线程。基于进程的多任务处理程序的并发执行。基于线程的多任务处理并发执行同一程序的各个部分…

linux shell 除法运算符,Linux shell 基本运算符详解

shell 支持多种运算符1.算数运算符2.关系运算符3.布尔运算符4.字符串运算符5.文件测试运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表…

linux下如何为redis配置path,linux环境下如何启动redis

启动redisredis可执行文件说明:redis-server:redis服务器redis-cli:redis命令行客户端redis-benchmark:redis性能测试工具redis-check-aof:aof文件修复工具redis-check-dump:rdb文件检查工具1、直接启动直接…

linux从别的主机下载,从局域网内的其他Linux主机下载文件

Step 0本机与目标机都需要安装有openssh-server在本机与目标机上以root用户身份执行service ssh status # Debian上是ssh,openSUSE上是sshd,可以在键入ssh后紧接着按一下Tab键以自动补全该服务名# 或service --status-all | grep ssh # 通用可查看ssh服务…

linux runqueue定义,linux – 了解rt_rq(实时runqueue)内核中数据成员的使用

以下是v3.5.4中的实时运行队列结构struct rt_rq {struct rt_prio_array active;unsigned int rt_nr_running;#if defined CONFIG_SMP || defined CONFIG_RT_GROUP_SCHEDstruct {int curr; /* highest queued rt task prio */#ifdef CONFIG_SMPint next; /* next highest */#end…

Linux7安装gi报错,Redhat 7.6安装11G RAC GI时遇到此类报错

环境:Redhat Linux 7.6 Oracle 11.2.0.4 RAC现象:图像化安装过程中,按照提示执行root.sh脚本,报错中断。1. 具体现象[rootmm1903 ~]# /u01/app/11.2.0/grid/root.shPerforming rootuser operation forOracle 11gThe following en…

c语言修改字符串c2133,通过create_string_buffer、create_unicode_buffer让C语言具备修改字符串的能力...

字符串的修改我们知道C中不存在字符串这个概念,python中的字符串在C中也是通过字符数组来实现的。我们说在C中创建一个字符数组有两种方式:char *s1 "hello world";char s2[] "hello world";这两种方式虽然打印的结果是一样的&…

c语言中O空字符,OC语言中字符串的使用

可变字符串//插入字符串NSMutableString*string1 [NSMutableStringstringWithString:"字符串"];[string1insertString:"可变"atIndex:0];//在string的第0个位置插入NSLog("string %",string1);//可变字符串//删除字符串NSMutableString*string2…

大二c语言期末考试题库及详解答案,大学C语言期末考试练习题(带详解答案)...

《大学C语言期末考试练习题(带详解答案)》由会员分享,可在线阅读,更多相关《大学C语言期末考试练习题(带详解答案)(55页珍藏版)》请在金锄头文库上搜索。1、一、 单项选择题1( A )是构成C语言程序的基本单位。A、函数 B、过程 C、子程序 D、子例程2C语言…

C语言指针怎么存二维数组,C语言怎么用指针代替二维数组

1.设p是指向二维数组a[m][n]的指针变量,则有:int*pa[0];//此时P是指向一维数组的指针。P后,p指向a[0][1]。2.如果定义int(*p1)[n];p1a;p1后,p1指向a[1][0];则pj将指向a[0]数组中的元素a[0][j]。由于a[0]、a[1]┅a[M-1]等各个行数组…

c语言结构引用6,C语言6结构体练习题6

第六章 结构体1.下面对结构变量的叙述中错误的是A.相同类型的结构变量间可以相互赋值 B.通过结构变量,可以任意引用它的成员 C.结构变量中某个成员与这个成员类型相同的简单变量间可相互赋值D.结构变量与简…

设 l í {a,b,c}* 是满足下述条件的符号串构成的语言,编译原理模拟试题1和2的答案...

一、是非题1、算符优先关系表不一定存在对应的优先函数。( 错)2、数组元素的地址计算与数组的存储方式有关。( 错)3、仅考虑一个基本块,不能确定一个赋值是否真是无用的。( 正确)4、每个文法都能改写为LL(1)文法。( 正确)。5、对于数据空间的存贮分配,FO…

新手学习c语言的方法,学习C语言方法“新手必看”

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼1、多看代码在有一定基础以后一定要多看别人的代码。 注意代码中的算法和数据结构。 毕竟学C之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环,绝大多数的数据结构是建立在指针…

android自定义进度条百分比跟着走,Android自定义View实现水平带数字百分比进度条...

这个进度条可以反映真实进度,并且完成百分比的文字时随着进度增加而移动的,所在位置也恰好是真实完成的百分比位置,效果如下:思路如下:第一部分是左侧的蓝色直线,代表已经完成的进度;第二部分是…

android动画view上移,在Android开发中使用View制作一个引导动画

在Android开发中使用View制作一个引导动画发布时间:2020-11-20 16:46:16来源:亿速云阅读:98作者:Leah这篇文章将为大家详细讲解有关在Android开发中使用View制作一个引导动画,文章内容质量较高,因此小编分享…

linux 启动 x,(1)linux启动过程

head.S是linux启动后的第一个文件,主要完成以下功能:1、检查处理器信息,并保存;2、检查平台号,并保存;3、创建页表,并开启MMU功能;4、对内核data section、bbs section作调整和初始化…

android 刷新view位置,Android View刷新机制实例分析

本文实例讲述了Android View刷新机制。分享给大家供大家参考,具体如下:一、总体说明在Android的布局体系中,父View负责刷新、布局显示子View;而当子View需要刷新时,则是通知父View来完成。二、代码分析1).ViewGroup的a…