Ubuntu20.04下交叉编译树莓派能运行的c++程序(不含第三方库)

2023-10-27

参见博主之前的博客,里面生成了test目标文件,现在将这个目标文件传到树莓派上,运行出现如下报错信息:

这里因为我的编译平台(x64 Ubuntu操作系统)和目标平台(ARM raspbian操作系统),所以前者编译出来的东西并不能在目标平台上运行。通样的代码,我们直接在树莓派上编译运行是没有问题的(代码见之前博客)。

那么我们可以通过交叉编译工具链来实现x64 Ubuntu编译出来的程序能运行到树莓派4B上。

1. 下载树莓派交叉编译工具

git clone git://github.com/raspberrypi/tools.git

下载完毕后可看到文件夹结构

2.添加交叉编译工具的路径加到环境变量中

终端中打开文件

sudo gedit ~/.bashrc

文件底部export对应自己路径

保存关闭,再输入如下命令生效一下

source ~/.bashrc

此时输入arm 后跟两个tab键,会输出如下信息:

这里我们要编译的是c++,选择工具arm-linux-gnueabihf-g++,使用该编译工具进行编译,编译成功。

尝试在ubuntu下运行目标文件test_helloworld,会出现如下不正确的信息,可以看到编译出来的目标文件在源平台上运行不了。

我们将编译出来的test_helloWorld.out拷贝到树莓派上,可以看到,正常运行。

可以看到在ubuntu上交叉编译出来的可执行文件,可以在树莓派上跑起来。

2022.1.2更新:

实验1: 博主尝试用如下树莓派路径下的编译环境,仍可以交叉编译成功。在树莓派上正确执行程序

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu20.04下交叉编译树莓派能运行的c++程序(不含第三方库) 的相关文章

  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • C# 异步等待澄清?

    我读了here http blog stephencleary com 2012 02 async and await html that 等待检查等待的看看它是否有already完全的 如果 可等待已经完成 那么该方法将继续 运行 同步
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 访问外部窗口句柄

    我当前正在处理的程序有问题 这是由于 vista Windows 7 中增强的安全性引起的 特别是 UIPI 它阻止完整性级别较低的窗口与较高完整性级别的窗口 对话 就我而言 我想告诉具有高完整性级别的窗口进入我们的应用程序 它在 XP 或
  • 创建反应应用程序:npm 错误!解析“...”附近时 JSON 输入意外结束

    描述错误 npx create react app my app不适合我 我试过npm cache clean force但我一次又一次地遇到同样的错误 重现步骤 npm cache clean force npm npx create r
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • G003-186-08

    作业报告 目录 项目需求提案计划书 一 项目介绍 一 项目背景 二 产品目的 三 应用领域 1 项目范围 2 功能范围 3 应用对象 四 项目优势 五 可行性分析 1 技术可行性分析 2 经济可行性分析 3 社会可行性分析 项目需求萃取分析
  • 如何处理ChatGPT在文本生成中的语法错误和不合理性?

    ChatGPT是一种强大的自然语言处理模型 但它并不是完美的 有时会产生语法错误或不合理的文本 这些问题可能会影响模型生成的内容的质量和可信度 在处理ChatGPT中的语法错误和不合理性时 有许多方法和策略可以采用 以下是一些详细的讨论 1
  • PhotoShop 之 绘制心型云彩

    利用渐变工具 画笔工具 路径工具绘制心型云彩 1 新建一个白色画布 2 利用渐变工具 绘制背景图 3 新建一个图层 利用自定义形状 选择路径 绘制一个心型形状 4 配置画笔 5 选择路径 选择右下角的 用画笔描边路径 按钮 对心形状进行描边
  • AngularJS中的$http缓存以及处理多个$http请求

    在AngularJS的实际项目中 经常需要处理多个 http请求 每个 http请求返回一个promise 我们可以把多个promise放到 q all 方法接受的一个数组实参中去 处理多个 http请求 angular module ap
  • C++ 返回值为数组的函数

    首先整理一下new的用法 1 new 分配一个数的空间 2 new 分配一个数组的空间 空间大小在 中指定 3 当使用new运算符定义一个多维数组变量或数组对象时 它产生一个指向数组第一个元素的指针 返回的类型保持了除最左边 维数外的所有维
  • 使用 MBean 和 日志查看 Tomcat 线程池核心属性数据

    文章目录 CustomTomcatThreadPoolMBean CustomTomcatThreadPool CustomTomcatThreadPoolMBean com qww config public interface Cust
  • Python爬虫之JS逆向分析技巧

    Python爬虫之JS逆向分析技巧 当我们使用爬虫时 遇到被JS加密的参数怎么办 有人会说用Selenium不就可以了么 但是Selenium执行又没效率怎么办 答案是 使用Python的execjs库直接执行JS脚本来获取加密后的参数 J
  • 【Linux操作小试牛刀】如何使用systemctl 命令管理 systemd服务

    前言 需求 当Linux中有许多系统服务 无法通过外部管理工具或者接口开启 关闭 需要手动管理时就需要用到systemctl命令 Systemd是基于Linux的操作系统的系统和服务管理器 用于管理服务 Systemd比旧的Sysvinit
  • [结构体]Cpp里结构体的几种常用写法

    1 定义并声明结构体变量 struct Date int year int month int day int main Date date 声明并定义了一个Date类型的变量date date year 2023 date month 9
  • Ubuntu 安装指定版本 python

    场景 在构建 docker 镜像的时候为了与 TensorFlow Pytorch 或者其他程序能兼容使用 需要安装指定版本的 python 常用的安装命令 apt get 有时候不能很 精确 指定 甚至是找不到源 隔山修路 遇水搭桥 py
  • golang和rust嵌入式开发初探

    本文简单的介绍了golang和rust语言在openwrt系统 mips架构下的交叉编译 环境 主机 系统 内核 架构 host主机 Centos 7 2 linux 3 10 0 327 x86 64 target主机 openwrt 1
  • unity拖拽drag_Unity全方位拖拽物体攻略

    Unity中UGUI控件和3D物体拖拽实现 基本原理 Unity拖拽的基本原理 射线检测 鼠标位置增量转换为统一空间的位置增量 将位置增量添加到拖拽物体原位置上 统一空间指的是将所有向量转换为同一空间下再进行计算 项目演示 左测 UGUI
  • blender基础认识(选项开关、工具栏、视图等)

    文章目录 引言 一 大纲选项开关和保存启动文件 1 大纲选项 1 禁用选中 2 视图影藏 3 视图禁用 4 渲染禁用 2 保存启动文件 二 工具栏和侧边栏 1 左侧工具栏 2 右侧工具栏 三 视图 1 视角 2 缩放 3 拖拽 4 摄像机视
  • AD PCB导出Gerber文件(非常详细的步骤)

    当我们的PCB绘制好 并仔细检查后 就可以把文件交给工厂生产了 一般有两种方式 第一种最简单 就是直接将PCB文件压缩打包 发给工厂 发给工厂的途径一般有两种 一种是在其官网上提交 一种是在其开发的应用程序上提交 嘉立创工厂就可以在其开发的
  • Hibernate笔记_如何处理OO中的一些特点

    1 对象属性是复合数据类型 composite user type 这其实是OO中的aggregation 和 composition Embeddable Embedded span style font size 14px packag
  • linux ctrl+z之后如何恢复

    在linux中使用matlab的时候 常常用ctrl z将matlab挂起 一开始并不知道怎么处理 也关不掉 后来发现用fg再回车就可以将后台挂起程序切换的前台来
  • 如何利用github搭建个人网站(无需购买云服务器)

    请看原创 转载来源 1 建立GithubPage 这里的作用就是说在github上建立一个仓库 并且将它设置成github的网页模式 其实我们后面的域名只是跳转到这个仓库的页面 首先新建一个仓库 然后注意设置仓库名字时要和你的githubI
  • Graph Correspondence Transfer for Person Re-Identification论文笔记

    摘要 提出了GCT 图关系迁移 模型解决行人重识别问题 与现存的方法不一样 GCT将行人重识别视为一个离线的图匹配问题和一个在线的关系迁移问题 在训练过程中 通过patch级别的图匹配 在具有不同姿势对配置的正样本对中离线的学习得到一个关系
  • 详解numpy.random.randn函数

    文章目录 正态分布 函数原型 参数解析 该函数的注意事项 示例代码 示例结果 参考 正态分布曲线绘制代码 numpy的random模块中的randn函数用于从 标准正态 方差为1 均值为0的正态分布 分布返回一个 或多个 float类型数据
  • Ubuntu20.04下交叉编译树莓派能运行的c++程序(不含第三方库)

    参见博主之前的博客 里面生成了test目标文件 现在将这个目标文件传到树莓派上 运行出现如下报错信息 这里因为我的编译平台 x64 Ubuntu操作系统 和目标平台 ARM raspbian操作系统 所以前者编译出来的东西并不能在目标平台上