当前位置:

首页 > 软件教程 > 在Ubuntu服务器上如何进行跨平台交叉编译可执行程序?

在Ubuntu服务器上如何进行跨平台交叉编译可执行程序?

相信很多C程序员都有过这样的疑问,如果一台服务器有不同的gcc版本怎么办,它们之间会相互影响吗?答案是会的,我们一般使用gcc编译源文件时,这个gcc是系统环境变量PATH中最开始找到的gcc。如果要交叉编译不同系统的程序呢?这就需要多套的编译工具链了,分别使用对应的工具链编译目标系统的程序。默认路径编译器路径:通常放置在/usr/bin目录下。头文件路径:系统级别的头文件通常放在/usr/include中,标准库的头文件一般在/usr/local/include。库路径:系统动态库往往位于/usr/li

本文目录

    相信很多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路径去查找编译时需要的相应的工具组件。

    所以如果要编译不同架构的程序,就需要有多套的工具链,如果都把这些工具链的路径加到系统的环境变量PATH中则会产生冲突,会优先使用前面路径中的同名工具,比如PATH设置为:

    export PATH=/path/arm_toolchain/bin:/usr/bin:/path/x86_toolchain/bin

    /path/arm_toolchain/bin和/usr/bin,/path/x86_toolchain/bin都有名称为gcc的工具,那么前面的就会覆盖后面的,每次执行都会优先使用最早匹配到的gcc工具。

    缺点:无法动态指定不同架构的编译工具链,需要频繁修改PATH环境变量。

    改进方法:给每个工具链指定相应的环境变量,这样就可以动态区分不同的编译器。

    这种办法适合临时切换工具链,编译不同架构的程序,如果是大型C程序一般是通过配置文件中指定了编译器的路径,然后使用make,或者meson等构建工具进行构建。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    软件教程 路径 gcc
    相关文章 更多
    Photoshop钢笔工具抠图技巧与路径调整方法
    Photoshop钢笔工具抠图技巧与路径调整方法

    学习使用Photoshop钢笔工具进行精确抠图。从创建初始路径、精细调整锚点曲线,到生成选区并应用图层蒙版,保留编辑灵活性,适合处理硬边或复杂轮廓的主体。

    Photoshop路径转选区与选区转路径的操作方法
    Photoshop路径转选区与选区转路径的操作方法

    掌握Photoshop路径与选区的互转方法,提升抠图精度与编辑效率。包含快捷键操作、容差设置及常见应用场景解析。

    photoshop路径概念及含义
    photoshop路径概念及含义

    刚接触Photoshop路径?本文清晰讲解路径的锚点、线段组成,演示如何在路径面板管理路径,以及如何将路径转为选区或形状,助你精准抠图与绘图。

    photoshop钢笔工具怎么用 用法详解
    photoshop钢笔工具怎么用 用法详解

    详解Photoshop钢笔工具的界面布局与核心功能,包括锚点操作、曲线调整及路径面板配合,适合初学者快速上手矢量绘图。

    photoshop钢笔工具使用涂色
    photoshop钢笔工具使用涂色

    学习Photoshop钢笔工具的基础用法,掌握绘制闭合路径后如何填充颜色。涵盖路径转选区填色和直接创建形状图层两种主流方法,适合初学者快速上手。

    photoshop路径的主要作用
    photoshop路径的主要作用

    深入解析Photoshop路径的主要作用,通过实操案例展示如何使用路径进行高精度抠图、创建可编辑的矢量形状、让文字沿路径排列以及辅助复杂选区制作。适合希望提升PS进阶技巧的设计师阅读。

    photoshop钢笔工具怎么填充颜色
    photoshop钢笔工具怎么填充颜色

    学习如何在Photoshop中利用钢笔工具绘制闭合路径,并通过载入选区填充前景色或转换为形状图层进行填色,适合新手入门参考。

    photoshop钢笔工具使用
    photoshop钢笔工具使用

    详细讲解Photoshop中钢笔工具的操作方法,包括创建直线、贝塞尔曲线、调整锚点以及将路径转换为选区,帮助用户实现专业级的图像抠图效果。

    photoshop 钢笔工具建立选区时是反选的怎么调回来
    photoshop 钢笔工具建立选区时是反选的怎么调回来

    解决Photoshop中钢笔工具绘制路径转为选区时出现反向选择的问题,提供路径面板操作、布尔运算及快捷键修正的详细步骤。

    photoshop路径转换为选区
    photoshop路径转换为选区

    学习如何将Photoshop中的贝塞尔路径快速转换为可编辑选区。包含路径检查、载入选区按钮使用、羽化半径设置及选区验证步骤,适合需要精确抠图的初学者。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。