IT袋

当前位置:主页 > 经验教程 > 系统教程 >

如何在ubuntu服务器交叉编译不同系统的可执行程序

如何在ubuntu服务器交叉编译不同系统的可执行程序?

时间:2024-03-05 10:15:54 来源:IT袋 作者:马勇
导读:如何在ubuntu服务器交叉编译不同系统的可执行程序,为大家介绍如何在ubuntu服务器交叉编译不同系统的可执行程序方面的介绍,接下来IT袋网带大家一起了解。 相信很多C程序员都有过这样的疑问,如果一台服务器有不同的

如何在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

如何在ubuntu服务器交叉编译不同系统的可执行程序

如何在ubuntu服务器交叉编译不同系统的可执行程序

查看可执行程序系统架构

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

如何在ubuntu服务器交叉编译不同系统的可执行程序

当前系统的架构:uname -m

如何在ubuntu服务器交叉编译不同系统的可执行程序

一般情况下gcc是会按照系统默认的PATH路径去查找编译时需要的相应的工具组件

相关阅读

  • centos离线安装中文版GitLab

    centos离线安装中文版GitLab

    为网友解答centos离线安装中文版GitLab的相关话题,请看下面详细的介绍。 1. 下载gitlab安装包 从【清华大学开源软件镜像站 】下载最新中文版gitlab安装包,安装包里自带了简体中文汉化包。 从

  • win10系统32位在哪下载 windows1032位下载

    win10系统32位在哪下载 windows1032位下载

    为大家介绍的是win10系统32位在哪下载的方法内容,关于win10系统32位在哪下载 windows1032位下载,接下来一起来看看吧。 我们在日常使用win10操作系统的时候,有些情况可能会遇到需要安装操作系

  • 报错691 电脑691错误解决教程

    报错691 电脑691错误解决教程

    全面的为您讲解电脑691错误解决教程方面的知识,关于报错691 电脑691错误解决教程,下面为详细的介绍。 比较多的IT袋朋友在使用宽带时候会出现错误691字样,出现这个问题时候比较多的IT袋

  • 光盘如何安装win10系统教程 新手重装系统详细流程图解

    光盘如何安装win10系统教程 新手重装系统详细流程图解

    文章导读:光盘如何安装win10系统教程和新手重装系统详细流程图解IT技巧方面的经验,接下来分享详细内容。 1)Windows 7的安装方式: 通过 光盘、虚拟光驱、硬盘、U盘 进行安装。 2)Windows