如何在ubuntu服务器交叉编译不同系统的可执行程序?
如何在ubuntu服务器交叉编译不同系统的可执行程序
为大家介绍如何在ubuntu服务器交叉编译不同系统的可执行程序方面的介绍,接下来IT袋网带大家一起了解。
相信很多C程序员都有过这样的疑问,如果一台服务器有不同的gcc版本怎么办,它们之间会相互影响吗?
答案是会的,我们一般使用gcc编译源文件时,这个gcc是系统环境变量PATH中最开始找到的gcc。
如果要交叉编译不同系统的程序呢?这就需要多套的编译工具链了,分别使用对应的工具链编译目标系统的程序。
默认路径
- 编译器路径:通常放置在
/usr/bin目录下。 - 头文件路径:系统级别的头文件通常放在
/usr/include中,标准库的头文件一般在/usr/local/include。 - 库路径:系统动态库往往位于
/usr/lib和/lib,静态库通常也会放在这里或者/usr/local/lib。
手动设置路径
编译器路径
更改编译器路径的环境变量通常不是必要的,因为 /usr/bin 应该已经在你的 PATH 环境变量中了。如果你需要使用不同的编译器,你可以直接使用其完整路径或者修改 PATH 环境变量来指向你的编译器,例如:
export PATH=/path/to/your/compiler:$PATH
这样会在现有的PATH前添加你指定的路径,使系统首先在此处寻找可执行文件。
设置交叉编译器
背景:我现在需要在ubuntu上编译arm架构的程序,使用marvell提供的工具链,工具链中有交叉编译arm架构程序的gcc和其他工具,它们有着相同的前缀。
arm编译:这样设置前缀后就可以使用交叉编译器
export CROSS_COMPILE=/home/zheng/marvell-tools-12006.0/bin/aarch64-marvell-linux-gnu-
使用环境变量进行编译:
${CROSS_COMPILE}gcc -o hello_arm hello_arm.c


然后分别执行一下这两个程序:

当前系统的架构:uname -m

一般情况下gcc是会按照系统默认的PATH路径去查找编译时需要的相应的工具组件
相关阅读
-
centos离线安装中文版GitLab
为网友解答centos离线安装中文版GitLab的相关话题,请看下面详细的介绍。 1. 下载gitlab安装包 从【清华大学开源软件镜像站 】下载最新中文版gitlab安装包,安装包里自带了简体中文汉化包。 从
-
win10系统32位在哪下载 windows1032位下载
为大家介绍的是win10系统32位在哪下载的方法内容,关于win10系统32位在哪下载 windows1032位下载,接下来一起来看看吧。 我们在日常使用win10操作系统的时候,有些情况可能会遇到需要安装操作系
-
报错691 电脑691错误解决教程
全面的为您讲解电脑691错误解决教程方面的知识,关于报错691 电脑691错误解决教程,下面为详细的介绍。 比较多的IT袋朋友在使用宽带时候会出现错误691字样,出现这个问题时候比较多的IT袋
-
光盘如何安装win10系统教程 新手重装系统详细流程图解
文章导读:光盘如何安装win10系统教程和新手重装系统详细流程图解IT技巧方面的经验,接下来分享详细内容。 1)Windows 7的安装方式: 通过 光盘、虚拟光驱、硬盘、U盘 进行安装。 2)Windows


