导航:首页 > 源码编译 > rpm包交叉编译

rpm包交叉编译

发布时间:2022-06-20 20:41:14

⑴ 请问运行于不同CPU构架的linux,它们的软件可以通用吗

以上回答中jiangtao9999的比较靠谱儿。
是这样:
1、Linux下的软件几乎都是c语言的;
2、如果你学过C语言,找找书应该有这样一个概念:ANSI C,这个是一个C语言的标准,比如printf这个函数就属于标准库(也就是符合ANSI标准的)函数
3、假如你编写了一个软件,代码中仅仅包含ANSI的库函数,那么没有问题,只要是支持C语言的平台,都能正常运行,即:编写了一个简简单单的helloworld到哪里编译运行都没有问题。
【前提是:】编译再运行,不编译就运行是不可以的,比如printf函数在各种架构上的实现方式是不可能相同的,所以需要在arm的编译器上再编译一遍才可以。否则运行不了。
有的软件平台可以不用编译,直接运行,比如jiangtao9999说的java、Python什么的,Java可以实现“一次编译,满哪运行”什么的,而Python则是有了.py源代码就可以无敌了,使用的时候不用你去执行编译命令,直接执行即可。arm上实现这两种语言都是很容易的——下载源代码、编译、安装即可。
4、不同架构的Linux平台都要实现一个编译器,这是很重要的,有了编译器,才可以从源代码安装软件。
5、使用非ANSI库中的函数需要该Linux包含这个函数的实现,否则,编译后的连接将不通过,比如一个软件使用了GTK来实现图形用户界面,那么就需要系统中包含了gtk的库函数,这就叫依赖,安装软件,首先要解决依赖,依赖有时候解决起来很麻烦,所以软件开发过程中尽量减少依赖,这样方便安装。
6、tar.gz这种格式的软件包有可能是源代码,有可能是可执行文件(这是因为那只是一个压缩包,内容是什么不一定),这两者不同。很多软件以tar.gz格式发布源代码,而qq的Linux版本属于可执行文件,在几乎所有Linux平台下面直接双击或者通过命令就可以使用。
7、如果你使用的是rpm包或者deb包或者是tar.gz文件包中可执行文件形式的软件包,而不是tar.gz这种形式的源代码,你需要使用相应的软件包管理器安装就行,
但这不意味着arm版本的deb和x86版本的deb文件是通用的,你能这样用是因为所有的使用x86机器的软件经过编译或者交叉编译(在arm平台上编译x86平台上的软件就叫交叉编译)以后,运行于几乎完全一样的统一的平台上,实现软件和系统的无缝对接,方便了用户——一方面可以不用浪费编译的时间,主要还是方便了那些不会编译软件的人。
8、我也正在学习Linux,所以很多地方不太对,这只是我现在的一些理解。jiangtao9999说的主要是和汇编有关,如果代码的实现主要是在c语言水平,那么就会由编译器屏蔽掉指令集和寄存器什么的。
9、要是在网络回答的答案能改改就好了,这样错误就会少一点。
10、重新罗嗦一遍:
1在不重新编译源代码的情况下,x86下linux的软件不可以运行于arm构架的Linux,即使运行也会奇卡。
2和在编译是否时为X86的CPU构架优化了编译无关。(把我问迷糊了,估计是无关)
3软件在编译时是否为X86的CPU构架而优化主要看作者了,资料可以参看http://www.gentoo.org/doc/zh_cn/gcc-optimization.xml
4和不同的安装包格式有一定关系
5tar.gz格式的软件包不能保证在不同架构的Linux都能运行
6在arm的linux安装时解决依赖以后,乳沟编译通过基本是没什么问题的
7不是所有源代码在arm和x86下编译一下就可以了,还需要做一些努力
8有源代码可以对遇到的不通过的问题逐一解决,理论上可以实现所有软件都能运行
9重新编译过程中如果遇到依赖问题需要逐一解决

⑵ red hat linux 里面怎么安装在gcc官网下载的gcc

楼主,你先说明你下载的gcc后缀名,如果是.rpm,那么你运行命令rpm -ivh gcc-4.1.2-50.el5.i386.rpm
就ok了。如果是.gz或者.tar那么你就先解压(解压命令参考http://www.cnblogs.com/eoiioe/archive/2008/09/20/1294681.html),然后安装,安装基本还是用rpm -ivh gcc-4.1.2-50.el5.i386.rpm。 其实楼主你的linux系统如果可以联网的话,直接打
yum -y install gcc这个命令就可以自动安装了,方便实用。

⑶ 如何搭建交叉编译环境

交叉编译环境就是在Windows下的东西拿到Linux下编译运行吧,我个人是在Linux启动了samba服务器,然后将文件夹映射到Windows下,在Windows下使用vc 6.0编程序然后到Linux下编译的。不知道能不能对你有些帮助。

下载的rpm包,可以使用rpm -ivh 包路径进行安装

⑷ 如何构建交叉编译环境。

你说的是我下面的回答吗?下面就一些问题作一个说明,以期抛砖引玉。
基于Linux操作系统的应用开发环境一般是由目标系统硬件(开发板)和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、应用程序的开发和调试则需要通过宿主PC机来完成(所以称为交叉编译)。双方之间一般通过串口,并口或以太网接口建立连接关系。
但在此我建议构建如下的交叉编译环境,适合个人或研发小组使用:单独拿出一台PC机(PII以上即可,就用以前淘汰的旧机器就可以),在该PC上安装桌面的Linux操作系统(如Red Hat Linux 8.0及以上),可以采用默认的安装选项(注意要包含FTP服务),这台PC作为Linux服务器,除管理员以外,一般不直接让其他人去操作。
将该Linux服务器接入局域网,并新建一些合法用户,以便其他的PC机(在此我们将其称为工作站)的合法用户能访问到Linux服务器。而其他的PC机(工作站)仍然使用Windows操作系统,原来干啥继续干啥。
需要的软件工具包括:
1、FTP客户端程序(如Cuteftp,可到网上下载)。
2、Telnet工具(如SecureCRT,可到网上下载)。
3、移植到某一特定ARM平台的Linux操作系统内核源码(一般由销售商整理提供)。
4、GNU编译工具,可由相关网站下载,或由销售商整理提供。
在工作站安装:
在某工作站PC上安装FTP客户端程序和Telnet工具,安装完毕后应该可以在该工作站PC和Linux服务器之间进行文件的传输,并在工作站PC可以通过Telnet登陆到Linux服务器(可能需要将Linux服务器的防火墙服务关闭才能完成)。
在Linux服务器安装:
将工作站PC上的Linux操作系统内核源码压缩包和GNU编译工具通过FTP传送到Linux服务器的某个目录(如合法的用户目录),然后在该目录下解压,并将GNU编译工具安装到默认的工作目录即可,以上工作通过在工作站PC使用Telnet工具完成,而不需要在Linux服务器上进行。
Linux操作系统内核的编译:
Linux操作系统内核的编译一般有一个比较固定的步骤,会根据MakeFile文件的不同而略有差异,可参考相关文档,编译的工作在工作站PC使用Telnet工具完成。

⑸ 用交叉编译器(已经更改为arm-linux-gcc) 编译内核;但是提示gcc没有找到

提示 gcc:not command;就表示是gcc命令没找到,这个和你的arm-linux-gcc没关系,因为如果arm-linux-gcc找不到的话,会提示arm-linux-gcc找不到的,所以你就只能猜是不是host边的gcc没找到,然后在你的主机端安装gcc开发包就可以了。

嵌入式一种重要的能力就是debug,自己锻炼下吧,以后这种简单的问题就能搞定了。

⑹ 关于rpm依赖性的问题!

搭建一个yum源服务器,yum会自动解决包依赖性问题

⑺ 执行./configure时出现错误 configure: error: C compiler cannot create executables

执行configure的时候指定目标机器以及ABI就行了,如下:
./configure --host=powerpc-linux-gnu ABI=32就是交叉编译ppc下32位可执行程序的configure参数

⑻ 求助,开始安装系统时gcc是能用的,后来装了交叉编译的arm-unknown-linux-gcc,就出问题了

考虑可能是gcc 出问题了,结果使用man gcc
查看是不是有此命令。出人意料的是没发现gcc 命令。不知出了什么问题,感觉不应该出这样的问题呀,这不是系统自带的吗?再三找原因,到论坛上发个帖子问了问老师,才发现fc6安装的时候必须定制这些安装包,不能按默认安装否则会少装好多文件。

于是想个解救的方法吧,到网上查了好多资料,也下了好几个安装包,不过按网上的说明一步一步安装,到最后都会出错。

具体步骤如下:安装之前,必须保证系统中有cc或者gcc等编译器,并且是可用的,或者用环境变量CC指定系统上的编译器。如果系统上没有编译器,不能安装源代码形式的GCC 3.3.1情况,可以在网上找一个与你系统相适应的如RPM等二进制形式的GCC软件包来安装使用。本文介绍的是以源代码形式提供的GCC软件包的安装过程,软件包本身和其安装过程同样适用于其它Linux和Unix系统。

系统上原来的GCC编译器可能是把gcc等命令文件、库文件、头文件等分别存放到系统中的不同目录下的。与此不同,现在GCC建议我们将一个版本的GCC安装在一个单独的目录下。这样做的好处是将来不需要它的时候可以方便地删除整个目录即可(因为GCC没有uninstall功能);缺点是在安装完成后要做一些设置工作才能使编译器工作正常。在本文中我采用这个方案安装GCC 3.3.1在安装完成后,仍然能够使用原来低版本的GCC编译器,即一个系统上可以同时存在并使用多个版本的GCC编译器。

⑼ alpine linux怎么安装文件

apk --update add ×××(×××是软件名字)
eg:
apk --update add openssl
apk --update add openssl-dev
执行命令后,会从数据源中寻找最新版本来安装对应软件包。
这是两个apk的数据源(阿里和清华,还有一个数据源我忘记了一般我就用这两个),交叉编译的安装包,alpine最快也是最小空间安装。

echo "http://mirrors.aliyun.com/alpine/edge/main/" > /etc/apk/repositories
echo "https://mirror.tuna.tsinghua.e.cn/alpine/edge/main/" > /etc/apk/repositories

⑽ C++交叉编译 请帮忙见见是哪个库没有链接

Eclipse 一般用作Java开发,但也可以用作C/C++开发工具。那么,在 Linux 系统下,怎样安装 eclipse 用来编译 C/C++ 程序呢?
工具/原料
Eclipse IDE for c/c++ 安装包
一、下载 Eclipse IDE for c/c++ 安装包
1
启动 Linux 系统,使用浏览器从 eclipse 官网下载 Eclipse IDE for c/c++ 安装包。地址见图。

2
下载时,请根据你的系统版本下载相应的安装包。由于我是 CentOS 6.6 32位版本,自然是下载 Linux 32 位的。

3
在这儿说明一下,使用此安装包,可以免去安装 eclipse 后还需配置 CDT 的烦恼。作为一个 c/c++ 程序开发者,深感比以前方便了不少。
END
二、安装 Eclipse IDE for c/c++
1
下载完成后,进入 Eclipse 安装包所在目录,在空白处右击鼠标,启动终端。

2
安装 Eclipse 之前,请确保安装了以下组件并更新到最新版:
1、Java 环境
2、gcc 和 g++

下面简单介绍一下检测方法:
1、查询 java 版本(通用):java -version
2、查询 gcc 版本(红帽系列):rpm -qa gcc

3
下面进入 eclipse 的安装环节,非常简单。总体来说是解压后即可用。

首先,登陆 root 帐户,键入命令 tar -zxvf 安装包名,回车,将压缩包解压到当前目录下。

4
解压完成后,键入 ls ,可以看到当前目录多了一个目录 eclipse 。
键入 cp -r eclipse /opt/ ,将 eclipse 目录下的所有文件复制到 /opt 目录下(这个目录随你喜好了,不复制也行)。

END
三、使用 eclipse
1
如果像我上面那样将 eclipse 文件夹复制到了 opt 目录,在终端键入 /opt/eclispe/eclipse,回车。eclipse 就启动了。

2
注:为了便于英语不好的同学理解,我下面全用中文,实际菜单为英文。

1)新建工程
首次启动时,会提示你程序代码保存位置,然后可能还会出现欢迎界面(关闭掉欢迎界面,IDE界面就可以看到了)。点击“文件”-“新建”-“c++工程”。

3
为工程取一个名字(例如 test),选择“空工程”,其余选项保持默认(下同),点击“下一步”。

4
在接下来的页面中,继续点击“下一步”,最后点击“完成”。

5
2)添加代码文件
点击“文件”-“新建”-“源文件”。

6
填写源文件名,切记,一定要加扩展名。

7
下面,就可以在源文件中书写代码。书写代码时,系统有时会给出一些错误提示,如果你确认你的代码没有写错,不要去理会。

8
代码写完后,点击工具栏的小三角按钮即可对代码编译运行,如果弹出提示框问你“代码已经修改,是否保存”,点击“是”。

9
运行的结果输出在下边的框里。

END
注意事项
安装 eclipse 前,要确保必须的组件已经安装。
添加程序代码文件时,一定要加上扩展名。

阅读全文

与rpm包交叉编译相关的资料

热点内容
资产管理pdf 浏览:168
制冷压缩机热负荷过低 浏览:361
服务器出现两个IPV4地址 浏览:846
宜兴云存储服务器 浏览:221
如何开放远程服务器上的端口号 浏览:69
大规模单片机厂家供应 浏览:954
3dmax编辑样条线快捷命令 浏览:708
怎么获得音乐的源码 浏览:251
郭麒麟参加密室完整版 浏览:320
单片机排线怎么用 浏览:485
java字符串太长 浏览:870
python变量计算 浏览:117
网银pdf 浏览:136
iponedns服务器怎么设置复原 浏览:407
深圳电力巡检自主导航算法 浏览:438
十二星座的布娃娃怎么买app 浏览:323
反编译打包地图不显示 浏览:92
没有压缩的图片格式 浏览:468
斯维尔文件需不需要加密狗 浏览:300
柱加密区范围在软件中设置 浏览:706