gdb移植arm,编译错误对‘_obstack_free’未定义的引用

各种小错误。1.0 小错不断的自省墙1关于Nothing to be done (all items are up-to-date).1》检查是否有其他的程序编译运行中(就是有没有别的黑框)2》确认main函数3》settings->compiler->toolchain executables-&am 阅读详情

1 任务:移植gdb到arm-linux

gdb版本:gdb-7.12.tar.gz

termcap版本:termcap-1.3.1.tar.gz

交叉编译工具链:arm-hisiv500-linux

2 termcap移植

 

cd termcap-1.3.1/

./configure --host=arm-linux --prefix=$(pwd)/../termapinstall --without-ada --enable-termcap --with-shared

 注意:虽然执行了上述configure命令,但是仔细一点便会发现termcap-1.-3.1的Makefile中的gcc没有改变,因此需要手动更改Makefile中的编译器。

vim Makefile

#.............
# 在gcc前添加对应交叉工具链名
CC = arm-hisiv500-linux-gcc
AR = arm-hisiv500-linux-ar
RANLIB = arm-hisiv500-linux-ranlib
#..........

 更改完Makefile之后,用root用户执行命令

make

make install

3 gdb移植

cd gdb-7.12/

./configure --host=arm-hisiv500-linux --enable-shared --prefix=$(pwd)/../gdbinstall --without-x --disable-gdbtk --disable-tui --without-included-regex --without-included-gettext LDFLAGS="-L$(pwd)/../termapinstall/lib" CPPFLAGS="-I$(pwd)/../termapinstall/include"

make

配置完后,执行make命令,会出现如下错误:

/home/gdb-7.12/gdb/c-exp.y:2381:对‘_obstack_free’未定义的引用
c-exp.o:在函数‘parse_string_or_char’中:
/home/gdb-7.12/gdb/c-exp.y:2127:对‘_obstack_free’未定义的引用
c-exp.o:在函数‘c_yylex’中:
/home/gdb-7.12/gdb/c-exp.y:3071:对‘_obstack_free’未定义的引用
ada-exp.o:在函数‘ada_parse(parser_state*)’中:
/home/gdb-7.12/gdb/ada-exp.y:745:对‘_obstack_free’未定义的引用
d-exp.o:在函数‘parse_string_or_char’中:
/home/gdb-7.12/gdb/d-exp.y:906:对‘_obstack_free’未定义的引用
d-exp.o:/home//gdb-7.12/gdb/d-exp.y:1538: 跟着更多未定义的参考到 _obstack_free

上述所报错误是说,编译器没有找到_obstack_free()这个函数,属于为定义引用。然后我到/usr/include/目录下搜索_obstack_free()该函数,发现存在一个obstack_free(),但不是_obstack_free()函数。

然后我又去了交叉编译工具链中查找obstack_free()函数,发现没有obstack_free()而有_obstack_free()。

据此,猜测是gdb版本问题,然后我进入了gdb-7.12/include目录,将obstack.h头文件出现的_obstack_free()全部改为obstack_free()函数。然后执行命令:

make

make install

顺利编译完成。

最后编译出来的gdb文件有25M之大,应该是里面含有一些符号表吧。于是我对gdb可执行文件strip一下,最后gdb程序大小在4M

arm-hisiv500-linux-strip ./gdb -o armgdb

最后将armgdb拷贝到开发板,可以运行。

over! 

H3C模拟器使用工具.zip 立即下载

相关推荐

SQL练习1-CREAT/DROP/ALTER SQL与T-SQL之间的不同:

练习主要内容: 数据库系统概论(第五版)例3.1-例3.12 在进行练习之前先【新建查询】 【新建查询】以后输入命令【CREATE DATABASE SCHOOL】再点击【分析】(工具栏的对勾)【执行】,刷新以后可以看见创建的数据库 SCHOOL 接着【创建对象】WANG 按照上面的图片所示,即可创建用户 接着需要修改【可执行数据库】,将数据库改成刚刚创建的SCHOOL 然后我们就可以开始进行练习: 模式的定义和删除 在SQL中,模式定义句: CREATE SCHEMAAUTHORIZATION 如果没有指定,那么隐含为 【例3.1】 为用户WANG定义一个学生-课程模式S-T

QT编译错误:undefined reference to `vtable for” ClassName

1. 右键项目, 点击 “Clean” 2. 右键项目,点击 “Run qmake” 3. 点击QT Create最上面的Build,执行“Run” 执行完上述步骤后编译通过了。 看别人的文章也有可能其他问题导致这个编译错误,如果这个办法没有用的话,可以参考别人的解决办法。 ...

lfc2017的博客 432

Unity分包下载实战:AssetBundle+CDN+热更新全链路指南

分包下载是移动应用资源管理的核心技术,本质是将大体积安装包拆解为按需加载的独立资源单元,以解决用户安装意愿低、首屏启动慢、热更新不可控等关键问题。其底层依赖资源打包机制(如Unity AssetBundle)、全球分发网络(CDN)与安全热更新策略三者协同。AssetBundle提供资源隔离与依赖管理能力,CDN保障低延迟高可用下载,而热更新策略则决定版本控制、灰度发布与异常恢复的工程鲁棒性。该方案广泛应用于中重度游戏、大型工具类App及需要频繁内容迭代的商业项目,直接提升次日留存、过审成功率与用户在线时长

weixin_29762151的博客 354

C++链接错误:未定义的引用Undefined Reference to

1、如果是动态库或者静态库中的函数,则需要检查是否将库链接(检查路径),若已经库链接,但还是有问题,则检查是否各个依赖库的顺序不对。编译的时候,如果文件。文件的时候并不需要函数的具体实现,只要有函数的原型即可。但是在链接为可执行文件的时候就必须要函数的具体实现了,故而该错误那就是找不到函数的原型。以为添加了,实际找到不到指定的路径,某些参数就为空,需要message输出检查一下。3、模板函数或者模板类数据没有实例化,也可能导致这个问题,需要指定模板,对模板函数或模板类做实例化。,那么编译的时候必须把。

comway_Li的博客 4342

从零到一:高通QCS6490边缘AI开发板的Linux生态构建与实战避坑指南

本文详细介绍了在高通QCS6490边缘AI开发板上构建Linux生态系统的完整流程,包括开发环境准备、系统镜像构建与烧录、AI运行时环境配置、模型部署优化以及性能调试。重点解析了如何利用Hexagon DSP的高达12 TOPS AI算力,并提供了实战中的避坑指南和性能优化技巧,帮助开发者高效实现边缘AI应用从概念验证到产品落地的全过程。

eee77的博客 770

[后端设计]innovus命令editPin详解?

先放命令,有空慢慢写。

m0_61003348的博客 5731

移植 gdb 8.2 报错 undefined reference to '_obstack_free'

前段时间手动编译 gdb8.2 到 ARM 平台,出现以下错误,排查并解决了这个错误,如下: 发现这个函数的定义在 libiberty 这里: 跟踪到 makefile ,在这里加打印: 发现 libiberty.a 有编译进去,最终确认 _obstack_free 未定义是因为这里的版本控制导致该代码未定义: 有些 C库有集成这个函数,不过目前我们的 ARM 库没有...

r_Jimy的专栏 1050

Ubuntu22.04 apt 安装 ROS1 ROS Noetic Ninjemys

ubuntu 22.04 apt-get 安装 ros1 ros Noetic 最新版

autolabor的博客 5万+

gdb移植arm,编译错误对‘_obstack_free’未定义的引用及gdb瘦身

1 任务:移植gdb到arm-linux gdb版本:gdb-7.12.tar.gz termcap版本:termcap-1.3.1.tar.gz 交叉编译工具链:arm-hisiv500-linux 2 termcap移植   cd termcap-1.3.1/ ./configure --host=arm-linux --prefix=$(pwd)/../termapinstall --with...

weixin_38293850的博客 552

Openclaw接入大模型API,操作本地windows文件

本文介绍了在WSL2环境下配置OpenClaw使用阿里百炼API的方法。主要内容包括:1)确认WSL2安装完成;2)配置阿里百炼API(需注意Qwen3-Max-Thinking为收费模型);3)提供正确的JSON配置格式示例,强调apiKey必须填写真实值;4)说明配置错误需修改Linux配置文件;5)建议通过询问模型信息验证连接成功。后续将介绍如何切换免费API及本地文件访问功能。

qq_27246521的博客 989

基于深度学习的柠檬等级检测系统 —— YOLOv8 + UI界面 + 数据集

本项目的目标是构建一个柠檬等级检测系统,通过深度学习模型自动检测柠檬的等级。自动检测柠檬等级:通过图像中的柠檬特征,自动判断其成熟度和质量。实时视频检测:通过摄像头实时监控柠檬的质量等级。用户友好的UI界面:为用户提供简洁直观的操作界面,支持图像上传、实时视频检测等功能。本项目展示了如何基于YOLOv8模型开发一个柠檬等级检测系统,结合PyQt5实现了用户友好的UI界面。通过该系统,用户可以快速上传柠檬图像并自动识别其等级,极大提升了检测效率和准确性。数据集的扩展。

YOLO 1112

gdb linux arm low.c,gdb在arm-linux上的移植

以前一直用打桩法来调试arm-linux程序,即通过添加printf()来调试。这一方法在通常情况下是很有用,而且也是很简单实用的。但是对于一些很特殊很隐蔽的错误,在这时这个方法可能就不太管用了,因为你总不能在每条语句之后都加上printf()吧。而且对于多线程的大中型应用程序,如果你不熟悉编译器,又或者你本身就是新手的话,程序的一个小bug就有可能让你几天睡不好觉。就像今天我遇到的一个错误,同样...

weixin_28751115的博客 297

Virtuoso 中的tech file 详细说明

工艺文件(Techfile)是集成电路设计中的核心配置文件,定义了从晶圆制造到版图验证全流程所需的工艺规则和图层属性。在Cadence Virtuoso平台中,Techfile作为连接设计与制造的桥梁,主要包含以下内容: 图层体系定义 金属层、介质层、多晶硅层等物理图层的编号、名称和显示属性 图层用途(DRAW、MASK等)及图层-用途组合(LPP)的优先级 设计规则约束 几何尺寸规则(最小线宽/间距) 包围和延伸规则 密度规则和特殊工艺规则(如天线效应) 器件定义 MOS管、电阻等器件的图层构成 电学参数

u013620135的博客 8128

一、GDB在海思平台上的编译

编译环境 一、下载GDB压缩包 gdb-8.3.tar.gz 二、解压压缩包 tar xvf gdb-8.3.tar.gz 三、配置编译器 进入到GDB的文件目录,然后执行 ./configure --host=arm-himix100-linux --program-prefix=arm-hisi- --prefix=`pwd`/output 四、修改文件...

冷饮 1482

自动识别象棋棋子的OpenCV应用

在计算机视觉领域,OpenCV是一个广泛应用的开源计算机视觉库,它提供了丰富的图像处理和分析工具。本文将介绍如何使用OpenCV实现自动识别象棋棋子的功能,并提供相应的源代码。通过以上代码,我们可以实现对棋盘图像中棋子的自动识别。需要注意的是,以上代码只是一个简单的示例,实际应用中可能需要根据具体情况进行参数调整和算法优化,以获得更好的识别效果。函数利用预处理后的图像,寻找图像中的轮廓,并根据轮廓的面积筛选出可能的棋子轮廓,最后在原图像中提取棋子区域。在主程序中,我们读取输入图像,并调用。

WzisTypescript的博客 907

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

【Linux问题解决】操作系统用C语言多线程编程 对‘pthread_create’未定义的引用 报错解决办法

操作系统用C语言多线程编程 对‘pthread_create’未定义的引用 报错解决办法 今天写操作系统作业 在Ubuntu Linux系统中用C语言编写多线程程序 在命令行进行编译 没通过编译 报错如下: In file included from 4.15.c:3:0: /usr/include/pthread.h:234:12: note: expected ‘void * (*)(void...

菜鸟的后花园 6769

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Cmake参考

http://www.cnblogs.com/coderfenghc/tag/cmake/

calm_agan的专栏 617

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

我的AI之路(12)--如何配置Caffe使用GPU计算并解决编译中出现的若干错误

前面说过(安装Anaconda3 和Caffe),在github上下载Caffe源码后,安装以下依赖包: dnf install autoconf automake dnf install protobuf-devel boost-devel openblas-devel opencv-devel leveldb-devel lmdb-devel hdf5-devel gflags-devel...

XCCCCZ的博客 2634

gdb交叉编译记录

一、基础文件 gdb下载点:http://ftp.gnu.org/gnu/gdb/ 我下载的是:gdb-8.0.1.tar.gz版本 工具链版本:gcc 版本 4.8.4 (GCC) 二、开始编译 命令先配置: ./configure --target=arm-linux --host=arm-linux --prefix=/home/gdb-8.0.1/build,然后make即可。完成之后不知道--prefix为什么没起作用。 在编译期间出现一个问题: 解决方法: 首先参考:ht.

weixin_38293850的博客 325

编译gdb和gdbserver

编译gdb和gdbserver步骤

SanShuiGeGe的博客 1219

“undefined reference to XXX“问题分析及解决方法总结

所有linux下 C编译 "undefined reference to XXX"问题总结

迈微AI研习社 · 号主 8万+

使用gdb远程调试开发板内程序

使用gdb远程调试开发板内程序 背景,开发主机是x86-64平台的Linux系统,开发板是ARM平台的Linux系统。 1. 安装gdb-multiarch作为gdb客户端 apt install gdb-multiarch 2. 编译可在开发板内运行的gdbserver作为gdb服务端 下载gdbserver v7.12源代码,并使用交叉编译工具链编译: cd gdb-7.12/gdb/gdbserver ./configure --host=arm-linux --target=arm-linux ma

Liigo's blog 2230

"undefined reference to" 问题汇总及解决方法

在实际编译代码的过程中,我们经常会遇到"undefined reference to"的问题,简单的可以轻易地解决,但有些却隐藏得很深,需要花费大量的时间去排查。工作中遇到了各色各样类似的问题,按照以下几种可能出现的状况去排查,可有利于理清头绪,从而迅速解决问题。 链接时缺失了相关目标文件 首先编写如下的测试代码: // test.h ...

weixin_34381666的博客 3万+

Multinet 运行cd submodules/KittiObjective2/ && make出错及解决方案

➜ KittiObjective2 git:(e080afd) ✗ make g++ -O3 -DNDEBUG -o evaluate_object2 evaluate_object.cpp evaluate_object.cpp: In function ‘void saveAndPlotPlots(std::__cxx11::string, std::__cxx11::string, std::__cxx11::string, std::vector<double>*, bool)’: evaluat

ningngmei4328的博客 658
上一篇: QT 添加背景图像并图像自适应窗口大小
下一篇: CJSON 创建含多层嵌套结构体及结构体解析
Chasing_Chasing
博客等级 码龄10年 233粉丝 87原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值