嵌入式Linux应用开发之环境搭建

前言
2020年4月,国内新冠肺炎疫情比较缓和,找了一个星期工作,找到了一份Linux应用开发的工作,正式开始从裸机开发向Linux系统编程的过渡。

第一天的工作——环境搭建
1、安装VMware;
2、安装Ubuntu14.04;
3、安装VMTools,设置共享目录;
4、安装交叉编译工具链
1)工具链名称:myir-imx-fb-glibc-x86_64-meta-toolchain-cortexa7hf-neon-toolchain-4.1.15-2.0.1
2)默认安装位置:/opt/myir-imx-fb/4.1.15-2.0.1,安装完成后,编译不成功(sudo编译也不成功);
3)随后更换安装位置到/home/wjw/toolchain目录下;
4)工具链安装完成后提示:

Each time you wish to use the SDK in a new shell session, you need to source the environment setup script e.g.
$ . /home/wjw/Work/toolchain/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

即每次打开了一个新的shell,那么在编译之前需要source以下工具链安装目录下的environment,这点在接下来的几天工作中经常忘记,耽误了不少时间(如果不source,默认编译器是cc,所以从这点上也可以辨别编译之前是否已source)。
5、代码编译
1)编译之前先make clean,编译时使用make,不能使用sudo make(因为这样会调用cc编译器,而不是调用交叉编译器);
2)make执行编译,提示权限不够,原因是./pack文件夹下的三个脚本文件没有执## 标题行权限,添加执行权限即可。

遇到的问题
1、Windows主机没有网络连接,如何使用远程登录工具登录Linux虚拟机(SSH)?
1)因为Windows主机没有联网,所以此时Windows主机并没有ip,如果Linux主机网络连接选择桥接模式,则Linux虚拟机也没有ip,所以使用桥接模式无法远程登录Linux虚拟机;
2)Linux虚拟机网络连接选择NAT模式(在NAT模式下,虚拟网卡VMnet8相当于是网关,Linux和Windows通过该网关进行相连,此时Linux虚拟机显示已连接,有ip);
3)ssh连接前提:Linux的ssh服务已经安装并且已启动;
4)ssh远程登录成功后,即使Windows主机之后联网成功了,也不会影响Linux虚拟机与Windows主机之间的互联,因为他们之间是通过虚拟网卡VMnet8来连接的。
2、linux虚拟机安装后,root用户默认密码是什么(安装过程中并未有该项设置)?
1)执行sudo passwd,输入当前用户密码;
2)接着会提示输入UNIX密码,此时即为设置root用户的密码。
3、windows和linux可以互相ping通,但是远程登录不上(SSH)?
1)看看系统中是否已安装ssh服务,且是否已启动:ps -e | grep ssh ;
2)若没有安装ssh服务,则安装ssh服务:

	sudo apt-get install openssh-client
	sudo apt-get install openssh-server

3)启动ssh服务:

	sudo /etc/init.d/ssh start

4、终端中使用cat命令时,显示中文乱码
1)这是终端字符编码的设置问题;
2)终端菜单栏 — 终端 — 设定字符编码 —选择UTF-8或GB2312(这个不行就是切换成另一个,反正就是这两个之一);
3)另外如果远程登录工具也是这种问题的话,再设置远程登录工具的字符编码。
5、Makefile中 = := ?= += 的区别
= 是最基本的赋值
:= 是覆盖之前的值
?= 是如果没有被赋值过就赋予等号后面的值
+= 是添加等号后面的值
例子:

  1)“=”
	make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。看例子:
        x = foo
        y = $(x) bar
        x = xyz
	在上例中,y的值将会是 xyz bar ,而不是 foo bar 。
	
  2)“:=”
	“:=”表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。
        x := foo
        y := $(x) bar
        x := xyz

	在上例中,y的值将会是 foo bar ,而不是 xyz bar 了。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值