arm-linux-gcc centos(arm–linux–gcc)
大家好,如果您还对arm-linux-gcc centos不太了解,没有关系,今天就由本站为大家分享arm-linux-gcc centos的知识,包括arm–linux–gcc的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
linux安装gcc包linux下gcc下载
如何卸载Linux上的GCC?
如果您需要卸载Linux系统上的GCC编译器,可以采取以下步骤:
1.打开终端。
2.使用 `sudo`命令提升权限,执行 `apt-get`或 `yum`命令卸载GCC。例如,对于基于Debian的系统(如Ubuntu),您可以使用:
```sh
sudo apt-get remove gcc
```
对于基于Red Hat的系统(如CentOS),您可以使用:
```sh
sudo yum remove gcc
```
3.根据提示进行确认,GCC将被卸载。
如何在Linux下下载GCC?
在Linux系统上下载GCC编译器,通常需要从GCC的官方网站或者Linux发行版的软件仓库中获取。以下是基于命令行的基本步骤:
1.打开终端。
2.如果您使用的是基于Debian的系统,可以使用 `apt-get`命令安装GCC:
```sh
sudo apt-get update
sudo apt-get install build-essential
```
这将安装GCC以及其它构建工具。
3.如果您使用的是基于Red Hat的系统,可以使用 `yum`命令安装GCC:
```sh
sudo yum groupinstall"Development Tools"
```
这将安装GCC以及其它开发工具。
如何解决在Linux下安装GCC时遇到的错误?
如果在安装GCC时遇到错误,例如提示找不到 `arm-none-linux-gnueabi-gcc`命令,可以按照以下步骤进行解决:
1.确认是否安装了交叉编译工具链。
2.如果未安装,需要先安装相应的交叉编译工具链。
3.如果已安装,确保交叉编译工具链的路径已经添加到环境变量 `PATH`中。
Linux下GCC/G++、Make和CMake有什么区别?
-**GCC/G++**:GCC(GNU Compiler Collection)是一套编程语言编译器,包括C、C++、Fortran、Ada等多种语言的编译器。GCC可以编译源代码并生成机器代码,G++是GCC中的C++编译器部分。
-**Make**:Make是一种工具,用于自动化构建过程。它根据Makefile文件中的规则来确定哪些目标需要编译,然后执行编译。Make是构建过程中不可或缺的工具,常用于编译项目中的多个源文件。
-**CMake**:CMake是一个跨平台的安装(编译)工具,能够使用简单的声明性语句描述所有平台的安装(编译过程)。CMake生成适用于特定平台的Makefile或NMake文件,然后Make或NMake根据这些文件来构建项目。
如何在Linux上安装GCC?
在Linux系统上安装GCC的步骤因发行版不同而异,以下是在CentOS系统上安装GCC的示例步骤:
1.确认是否已安装GCC。在终端输入 `gcc`命令,如果没有安装,会提示找不到命令。
2.挂载GCC安装光盘到指定目录,例如 `/mnt`。
3.切换到挂载后的目录 `/mnt`。
4.进入CentOS目录。
5.使用 `rpm`命令搜索GCC安装包。
6.根据搜索结果,使用 `rpm`命令安装GCC。
7.安装过程中可能会出现依赖关系问题,需要安装相应的依赖包。
8.安装完成后,测试 `gcc`命令是否可用,确认GCC是否安装成功。
armlinux安装apkarmlinux安装
安装好arm-linux-gcc后,如何设置环境变量?
以上3个其实都是一样的作用,都是通过改变PATH环境变量。
不同的是:/etc/profile是在启动一个交互登陆shell的时候被调用(通过/bin/login登陆,TTY上的开机登录就是这个)/etc/bashrc则是在一个交互的非登陆shell启动的时候被调用(通过命令行运行,例如在命令行输入bash)所以怎么设置就要看需要,一般来说,像这种设置工具链的环境变量,设置在/etc/profile里会更加好。export是一个用于设置环境变量的指令,但是BASH支持直接设置,所以如果你的机器是BASH作为shell的话(一般Linux都是的),可以不使用export。pathmunge也是一个指令,是一个直接用于添加路径到PATH环境变量的指令。
linux下如何安装安卓的APK包?
1、在linux中安装virtualbox,然后安装制安卓系统,再知安装apk2、尝试安装shashlink,这个是安卓的一个模拟库,一般来说,支持道x86的安卓的apk才可以运行,只支持arm的不能运行。
如何编译armlinux的go?
Golang也就是Go语言,现在已经发行到1.4.1版本了,语言特性优越性和背后Google强大靠山什么的就不多说了。Golang的官方提供了多个平台上的二进制安装包,遗憾的是并非没有发布ARM平台的二进制安装包。ARM平台没办法直接从官网下载二进制安装包来安装,好在Golang是支持多平台并且开源的语言,因此可以通过直接在ARM平台上编译源代码来安装。整个过程主要包括编译工具配置、获取Golang源代码、设置Golang编译环境变量、编译、配置Golang行环境变量等步骤。
注:本文选用树莓派做测试,因为树莓派是基于ARM平台的。
1、编译工具配置
据说下个版本的golang编译工具要使用golang自己来写,但目前还是使用C编译工具的。因此,首先要配置好C编译工具:
1.1在Ubuntu或Debian平台上可以使用sudoapt-getinstallgcclibc6-dev命令安装,树莓派的RaspBian系统是基于Debian修改的,所以可以使用这种方法安装。
1.2在RedHat或CentOS6平台上可以使用sudoyuminstallgcclibc-devel命令安装。
安装完成后可以输入gcc--version命令验证是否成功安装。
2、获取golang源代码
2.1直接从官网下载源代码压缩包。
golang官网提供golang的源代码压缩包,可以直接下载,最新的1.4.1版本源代码链接:
2.2使用git工具获取。
golang使用git版本管理工具,也可以使用git获取golang源代码。推荐使用这个方法,因为以后可以随时获取最新的golang源代码。
2.2.1首先确认ARM平台上已经安装了git工具,可以使用git--version命令确认。一般linux平台都安装了git,没有的话可以自行安装,不同平台的安装方法可以参考:
2.2.2克隆远程golang的git仓库到本地
在终端cd到你想要安装golang的目录,确保该目录下没有名为go的目录。然后以下命令获取代码仓库:
gitclone
大陆地区可能会获取失败,在不翻墙的情况下我试了几次都没成功,原因大家都懂的。好在google已经将golang也托管到github上面,所以也可以通过下面命令获取:
gitclone
视网络情况,下载可能需要不少时间。我2M的带宽花了将近两个小时才下载完,虽然整个项目不过几十兆==
下载完成后,可以看到目录下多了一个go目录,里面即为golang的源代码,在终端上执行cdgo命令进入该目录。
执行下面命令检出go1.4.1版本的源代码,因为现在已经有新的代码提交上去了,最新的代码可能不是最稳定的:
gitcheckoutgo1.4.1
至此,最新1.4.1发行版的源代码获取完毕
3、设置golang的编译环境变量
主要有GOROOT、GOOS、GOARCH、GOARM四个环境变量需要设置,先解释四个环境变量的意义。
3.1GOROOT
主要代表golang树结构目录的路径,也就是上面git检出的go目录。一般可以不用设置这个环境变量,因为编译的时候默认会以go目录下src子目录中的all.bash脚本运行时的父目录作为GOROOT的值。为了保险起见,可以直接设置为go目录的路径。
3.2GOOS和GOARCH
分别代表编译的目标系统和平台,可选值如下:
GOOSGOARCH
darwin386
darwinamd64
dragonfly386
dragonflyamd64
freebsd386
freebsdamd64
freebsdarm
linux386
linuxamd64
linuxarm
netbsd386
netbsdamd64
netbsdarm
openbsd386
openbsdamd64
plan9386
plan9amd64
solarisamd64
windows386
windowsamd64
需要注意的是这两个值代表的是目标系统和平台,而不是编译源代码的系统和平台。树莓派的RaspBian是linux系统,所以这些GOOS设置为linux,GOARCH设置为arm。
3.3GOARM
表示使用的浮点运算协处理器版本号,只对arm平台有用,可选值有5,6,7。如果是在目标平台上编译源代码,这个值可以不设置,它会自动判断需要使用哪一个版本。
总结下来,在树莓派上设置golang的编译环境变量,可编辑$HOME/.bashrc文件,在末尾添加下面内容:
exportGOROOT=你的go目录路径
exportGOOS=linux
exportGOARCH=arm
编辑完后保存,执行source~/.bashrc命令让修改生效。
4、编译源代码
环境变量配置完成自后就可以开始编译源代码。在go目录下的src子目录中,主要有all.bash和make.bash两个脚本(另外还有两个all.bat和make.bat脚本适用于window平台)。编译实际上就是执行其中一个脚本,两者的区别在于all.bash在编译完成后还会执行一些测试套件。如果希望只编译不测试,可以运行make.bash脚本。使用cd命令进入go下src目录,执行./all.bash或者./make.bash命令即可开始编译。由于硬件情况不同,编译耗费的时间不同。在我的B型树莓派编译过程花费了将近半个小时,编译完成后执行的测试套件又花费了差不多一个小时,总共花费了一个半小时左右。
5、配置golang运行环境变量
编译完成后,go目录下会生成bin目录,里面就是go的运行脚本。为了以后使用方法,可以将这个bin路径添加到PATH环境变量中。同样编辑~/.bashrc文件,因为前面设置过GOROOT环境变量指向go目录了,所以只需要在末尾加上
exportPATH=$PATH:$GOROOT/bin
保存后同样执行source~/.bashrc命令让环境变量生效。
至此,golang源代码编译安装成功。执行goversion应该就能看到当前golang的版本信息,表示编译安装成功。
linux下ARM平台编译编写的完成程序如何在windows环境下运行?
直接在window下运行不了。只能在window下安装虚拟机,再安装linux系统,在虚拟机下的linux里gcc编译你的程序.
请问学习ARM嵌入式开发应该准备些什么开发工具和要求?
感请。
这个问题相信是困扰所有嵌入式初学者的难题,
下面课内容是嵌入式学习必学的:C语言;C++;操作系统;计算机组成原理;linux编程;51单片机;arm;硬件编程语言(FPGA);模拟电路数字电路。
1、cc++语言,这是计算机行业的必修课,必须找扎实实学好,可以安装turboc编译器为开发环境,联系C语言编程;安装vc++6.0学习C++编程。
2、操作系统,先在电脑上安装一个vmwareworkstation,然后在vmwareworkstation里安装一个linux(redhat企业版)虚拟机。学习一下操作系统的基本原理,熟悉linux环境下的开发环境,然后你就可以照着《自己动手写操作系统》写个操作系统试试。
3、计算机组成原理,熟悉计算机的基本原理,看看一个计算机的基本组成及软件在里面是如何跑的。
4、《unix/linux编程实践教程》可以说是linux编程的必修课,很不错的一本书,初学嵌入式的朋友可以看看。
5、单片机,其实就是一台电脑,像现在的汽车控制、led控制、屏幕亮光程度控制,它都可以实现,自己买块开发板弄一下,你能学到很多的别人学不到的。
6、arm,现在流行的微机,说白了就是32位的单片机,还可以跑操作系统哦,自己想办法移植一个操作系统上去吧
7、硬件编程语言(FPGA),芯片到底是怎么做成的,学习这门课,你就知道了
8、模拟电路数字电路,硬件的基础,如果可以的话,学习下protel,自己做个硬件pcb板试试。
计算机这行都是偏向于实践的课程,所以要注重动手能力,
学习嵌入式这基本课程的时候,你可以按照这样的顺序来学习:
1:C语言、计算机组成原理、模拟电路数字电路
2:汇编语言、单片机、操作系统、C++
3:硬件编程语言、arm
嵌入式开发大抵分四个方向,硬件、驱动、内核、应用,如果是希望向嵌入式软件方向发展的话,目前常见的是
嵌入式Linux+ARM方向,关于这个方向,大概分3个阶段:
1、嵌入式linux上层应用,包括QT的GUI开发
2、嵌入式linux系统开发
3、嵌入式linux驱动开发嵌入式目前主要面向的几个操作系统是,LINUX,WINCE、VxWorks等等Linux是开源免费的,而且其源代码是开放的,更加适合我们学习嵌入式。
自学的话你可以尝试以下路线:
(1)C语言是所有编程语言中的强者,单片机、DSP、类似ARM的种种芯片的编程都可以用C语言搞定),因此必须非常熟练的掌握。推荐书籍:谭浩强的很不错,《TheCProgrammingLanguage》这本经典的教材是老外写的,也有中译版本。
(2)操作系统原理,是必需的,如果你是计算机专业毕业那也就无所谓了,如果是非计算机专业的就必须找一本比较浅显的计算机原理书籍看一看,把啥叫“进程”“线程”“系统调度”等等基本问题搞清楚。
(3)Linux操作系统就是用C语言编写的,所以你也应该先学习下Linux方面的编程,只有你会应用了,才能近一步去了解其内核的精髓。推荐书籍:《UNIX环境高级编程》(第2版)
(4)了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是起码的要求是能够看懂arm汇编。
(5)系统移植的时候,就需要你从下层的bootloader开始,然后内核移植,文件系统移植等。而移植这部分对硬件的依赖是非常大的,其配置步骤也相对复杂,也没有太多详细资料。
(6)驱动开发linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。linux驱动程序设计本质是属于linux内核编程范畴的,因而是对linux内核和内核编程是有要求的。在学习前你要想了解linux内核的组成,因为每一部分要详细研究的话足够可以扩展成一本厚书。
给大家把一个嵌入式开发学习大方面的学习框架搭出来了
。
最后呢祝大家能够在学习的路上马到成功。
Centos7安装MPICH出现问题
mpiexec-n<number>./examples/cpi
运行时需要自己修改<number>为自己的值,我指定的是<number>=4
在运行后出现了一下的问题,程序cpi所在的位置不允许运行。
/usr/bin/ld: cannot open output file/home/themingyi/Downloads/mpich-3.3/examples/.libs/14351-lt-cpi: Permission denied
查找资料后发现是程序所在位置权限设置的问题;修改如下:
sudo chown-R"$USER:"/home/themingyi/Downloads/mpich-3.3/examples
chmod-R 777/home/themingyi/Downloads/mpich-3.3/examples
几点解释:
(1)The-R flag stands for recursive, so that directory and all its subfiles and subdirectories will change owner. Remove the-R flag to just change the permissions of the directory itself.
(2)运行时找到examples文件夹,就在自己下载的mpich包的解压文件中
运行结果如下:
cpi.c程序:
/*-*- Mode: C; c-basic-offset:5; indent-tabs-mode:nil;-*-*/↩
/*↩
*(C) 2001 by Argonne National Laboratory.↩
* See COPYRIGHT in top-level directory.↩
*/↩
↩
#include"mpi.h"↩
#include<stdio.h>↩
#include<math.h>↩
↩
double f(double);↩
↩
double f(double a)↩
{↩
return(4.0/(1.0+ a* a));↩
}↩
↩
int main(int argc, char*argv[])↩
{↩
int n, myid, numprocs, i;↩
double PI25DT= 3.141592653589793238462643;↩
double mypi, pi, h, sum, x;↩
double startwtime= 0.0, endwtime;↩
int namelen;↩
char processor_name[MPI_MAX_PROCESSOR_NAME];↩
↩
MPI_Init(&argc,&argv);↩
MPI_Comm_size(MPI_COMM_WORLD,&numprocs);↩
MPI_Comm_rank(MPI_COMM_WORLD,&myid);↩
MPI_Get_processor_name(processor_name,&namelen);↩
↩
fprintf(stdout,"Process%d of%d is on%s\n", myid, numprocs, processor_name);↩
fflush(stdout);↩
↩
n= 10000;/* default# of rectangles*/↩
if(myid== 0)↩
startwtime= MPI_Wtime();↩
↩
MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);
↩
h= 1.0/(double) n;↩
sum= 0.0;↩
/* A slightly better approach starts from large i and works ba ck*/↩
for(i= myid+ 1; i<= n; i+= numprocs){↩
x= h*((double) i- 0.5);↩
sum+= f(x);↩
}↩
mypi= h* sum;↩
↩
MPI_Reduce(&mypi,&pi, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WOR LD);↩
↩
if(myid== 0){↩
endwtime= MPI_Wtime();↩
printf("pi is approximately%.16f, Error is%.16f\n", pi, fabs(pi- PI25DT));↩
printf("wall clock time=%f\n", endwtime- startwtime);↩
fflush(stdout);↩
}↩
↩
MPI_Finalize();↩
return 0;↩
}↩
建议看看《Linux就该这么学》