建德市住房和城乡建设局网站制作公司官网的步骤

news/2025/9/26 8:07:24/文章来源:
建德市住房和城乡建设局网站,制作公司官网的步骤,济南软件开发培训机构,一个营销型网站模板目录 1 搭建嵌入式gdb调试环境 1.1 交叉编译工具链自带的gdb和gdbserver 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 1.2.2 gdb调试程序 1.3 源码编译gdb和gdbserver 1.3.1 下载gdb和gdbserver源码 1.3.2 编译gdb 1.3.3 移植gdbserver 2 VSCodegdbserver 图…目录 1 搭建嵌入式gdb调试环境 1.1 交叉编译工具链自带的gdb和gdbserver 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 1.2.2 gdb调试程序 1.3 源码编译gdb和gdbserver 1.3.1 下载gdb和gdbserver源码 1.3.2 编译gdb 1.3.3 移植gdbserver 2 VSCodegdbserver 图形化调试 1 搭建嵌入式gdb调试环境 一般的桌面 Linux 系统比如 ubuntu、centos 等我们可以直接运行 gdb 来调试程序。但是嵌入式中芯片性能一般比较弱所以直接在嵌入式系统中运行 gdb 不太现实(性能强大的嵌入式芯片可以这么做)。嵌入式系统中一般在 PC 端运行 gdb 工具源码也是在 PC 端源码对应的可执行文件放到开发板中运行。为此我们需要在开发板中运行 gdbserver通过网络与 PC 端的 gdb 进行通信。因此要想在 PC 上通过 gdb 调试嵌入式程序那么需要两个东西gdb 和gdbserver其中gdb 是运行在 PC 上的gdbserver 需要我们移植到开发板上。 1.1 交叉编译工具链自带的gdb和gdbserver 一般来说交叉编译工具链都自带了gdb和gdbserver因此可以不用移植我去试了下发现gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf里面自带的gdbserver不能用 我把他放到开发板上执行提示 [rootimx6ull:/mnt]# ./gdbserver -bash: ./gdbserver: No such file or directory然后我又试了下gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf的gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/bin这个目录下的gdbserver放到开发板上是可以用的 那么gdb我也用7.5.0里面的gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gdb。 1.2 使用gdb进行嵌入式程序调试 1.2.1编写简单测试程序 首先编写一个简单的测试程序用于调试 #include stdio.h #include unistd.hint main(int argc, char *argv[]) {unsigned int times 0;while(1) {printf(runing times:%d\r\n, times);times;sleep(1);} }然后使用如下命令进行编译 arm-linux-gnueabihf-gcc test.c -o test -g //要使用-g选项才会有调试信息 然后我把他放到了开发板的/mnt目录下 1.2.2 gdb调试程序 首先在开发板上执行如下命令 ./gdbserver :1234 test 在开发版上执行命令的时候是不需要指定IP地址的只需要指定端口号即可然后他就会一直监听 然后在电脑上用下面的命令开始调试 ./arm-linux-gnueabihf-gdb test #我这里加了./是因为我没把这个交叉编译工具链加到环境变量中 然后再用下面的命令去连接开发板 target remote 172.31.8.195:1234 这时候开发板上也会发现被连接了 接下来就可以在电脑上调试程序了 比如看一下源码 比如我在main函数的第一行设置断点 1.3 源码编译gdb和gdbserver 如果交叉编译工具链里面没有gdb和gdbserver那么就要自己源码编译gdb和gdbserver方法如下。 1.3.1 下载gdb和gdbserver源码 去网址  http://www.gnu.org/software/gdb/download/ 然后解压 tar xzvf gdb-13.2.tar.gz 1.3.2 编译gdb 在交叉编译configure时通常会需要设置--build、--host和--target选项。各个选项的含义如下 --build编译所用的机器的平台。 --host编译出的代码运行的平台。 --target编译出来的工具链生成的代码的运行平台。这个选项不常用一般只在编译gcc、ld等工具链的过程中用到编译gdb,gdbserver时也会用到。 在不涉及到交叉编译的时候--build、--host、--target是一样的不需要特别设置。交叉编译的时候比如需要在x86平台编译arm程序就需要设置--build和--host选项。 通常本机上的gcc、ld等工具是没有前缀的这个时候--build可以设置为空。交叉编译工具链通常都有一个前缀比如arm-unknown-linux-gnueabi-gcc这个时候--host就要设置为arm-unknown-linux-gnueabi。 Example: ./configure --build --hostarm-unknown-gnueabi 然后用如下命令开始编译、安装 cd gdb-13.2/ mkdir /data/chw/imx6ull_20230512/nfs_rootfs/gdb_install ./configure --targetarm-linux-gnueabihf --prefix/data/chw/imx6ull_20230512/nfs_rootfs/gdb_install make -j8 make install 上面编译的过程中如果报错 gdb-13.2/missing: makeinfo: not found WARNING: makeinfo is missing on your system.You should only need it if you modified a .texi file, orany other file indirectly affecting the aspect of the manual.You might want to install the Texinfo package:http://www.gnu.org/software/texinfo/The spurious makeinfo call might also be the consequence ofusing a buggy make (AIX, DU, IRIX), in which case you mightwant to install GNU make:http://www.gnu.org/software/make/ Makefile:1794: recipe for target doc/bfd.info failed那就 sudo apt-get install texinfo 如果报错 configure: error: GMP is missing or unusable Makefile:11803: recipe for target configure-gdb failed make[1]: *** [configure-gdb] Error 1 make[1]: *** Waiting for unfinished jobs.... 那就用下面的方法 apt-get install libgmp-dev 编译安装完之后得到 这里就不修改PATH环境变量了测试的时候直接加路径。 1.3.3 移植gdbserver gdbserver是在开发板上运行的需要交叉编译gdbserver源码在./gdb-13.2/gdbserver里面 cd ./gdb-13.2/gdbserver ./configure --targetarm-linux-gnueabihf --hostarm-linux-gnueabihf CCarm-linux-gnueabihf-gcc CXXarm-linux-gnueabihf-g ARarm-linux-gnueabihf-ar LDarm-linux-gnueabihf-ld --prefix/data/chw/imx6ull_20230512/nfs_rootfs/gdbserver_install //配置 make 报错 ../gdbsupport/libgdbsupport.a: error adding symbols: File format not recognized collect2: error: ld returned 1 exit status Makefile:361: recipe for target gdbreplay failed make: *** [gdbreplay] Error 1 make: *** Waiting for unfinished jobs.... 这个问题我是这么想的这个libgdnsupport.a库是在前面编译gdb的时候产生的但由于gdb是在X86电脑上运行的所以这个libgdnsupport.a库是x86格式的 所以我要在重新配置编译一遍gdb只不过这次配置要用下面的命令要编译交叉编译的版本但是不要make install要是install那么前面编译的X86版本的gdb就被覆盖了这一次其实不是为了编译gdb只是为了使用编译gdb过程中产生的库 tar xzvf gdb-13.2.tar.gz cd ./gdb-13.2 ./configure --targetarm-linux-gnueabihf --hostarm-linux-gnueabihf CCarm-linux-gnueabihf-gcc CXXarm-linux-gnueabihf-g ARarm-linux-gnueabihf-ar LDarm-linux-gnueabihf-ld make -j8 //这次gdb就不要安装了要不然吧前面编译的覆盖了然后再编译gdbserver cd ./gdb-13.2/gdbserver ./configure --targetarm-linux-gnueabihf --hostarm-linux-gnueabihf CCarm-linux-gnueabihf-gcc CXXarm-linux-gnueabihf-g ARarm-linux-gnueabihf-ar LDarm-linux-gnueabihf-ld --prefix/data/chw/imx6ull_20230512/nfs_rootfs/gdbserver_install  //配置                     make -j8 这时候就会在当前目录下生成一个gdbserver把它拷贝到开发板上即可 然后在开发板上执行 然后电脑上执行 这说明自己编译出来的gdb和gdbserver也是可以用的。 2 VSCodegdbserver 图形化调试 前面介绍的是用gdb命令进行调试的接下来看一下直接用vscode调试这样要比gdb命令方便。 先按照下面的博客安装必要的插件ubuntu上安装vscode并远程开发与远程调试服务器代码_vscode ssh远程连接ubuntu后,怎么打开项目代码-CSDN博客 我现在调试是这样的我的vscode是安装在windows上的然后我要调试的代码test.c是在ubuntu服务器上的所以我要先vscode远程打开ubuntu服务器上的test.c代码就根据上面链接的博客操作就可以然后run--Add Configuration--- 会生成一个launch.json 把vscode里面的launch.json改成下面的内容 {     // Use IntelliSense to learn about possible attributes.     // Hover to view descriptions of existing attributes.     // For more information, visit: https://go.microsoft.com/fwlink/?linkid830387     version: 0.2.0,     configurations: [         {             name: (gdb) Launch,             type: cppdbg,             request: launch,             program: ${workspaceFolder}/test,             args: [],             stopAtEntry: false,             cwd: ${fileDirname},             environment: [],             externalConsole: false,             MIMode: gdb,             miDebuggerPath: /data/chw/imx6ull_20230512/nfs_rootfs/gdb_install/bin/arm-linux-gnueabihf-gdb,             miDebuggerServerAddress: 172.31.8.195:1234         }     ] } 其中 miDebuggerPath此项需要手动添加用于指定所使用的交叉编译器 gdb 路径。 miDebuggerServerAddress此项需要手动添加远程 gdbserver 服务器地址。  然后开发板上还是老样子运行gdbserver 然后vscode上直接按F5然后开发板上打印出了被连接的log。 然后就可以在vscode上进行调试了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/917962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南宁制作网站网页代码大全

我初始化h2数据库, 然后把jar 放到 springside-4.0.0.RC2\examples\mini-web 中 ,最后配置启动tomcat。 就出现这个错。 最开始我用 quick-start.bat ,但总是执行到一半就 挂掉了。 提示spy 包没找到 。 这个是在装载 xml,解析成b…

网站建设调研提纲wordpress评论页面

目录 1. 文本分类 2. 图像识别 3. 生物信息学 4. 金融预测 5. 其他领域 1. 文本分类 垃圾邮件过滤:SVM通过训练大量标记为垃圾邮件和非垃圾邮件的样本,学习出能够区分两者的模型,从而实现对新邮件的自动分类。情感分析:在社…

【GitHub每日速递 250926】12 周 24 课,边学边练!微软 AI 初学者的通关秘籍

原文:https://mp.weixin.qq.com/s/t99TeeaVhDTuzobY6WkYng 揭秘Linera:高可扩展区块链基础设施,附CLI工具快速上手攻略 linera-protocol 是一个基于Rust构建的高性能、去中心化微服务区块链协议的底层框架。简单讲,…

mcp-use mcp server 交互工具

mcp-use mcp server 交互工具mcp-use mcp server 交互工具,当然mcp-use 不支持简单的mcp client,还支持agent开发,通过mcp-use 我们可以将llm 与mcp server 集成起来,提升agent 的能力 简单示例 import asyncio i…

年薪破百万、涨薪60%,人形机器人企业疯狂「抢人」

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 35469554100490872025年,人形机器人不再只是春晚舞台上的炫技明星,而是逐渐走进具…

深入解析:HttpClientFactory vs new HttpClient:.NET Core HTTP 客户端的正确打开方式

深入解析:HttpClientFactory vs new HttpClient:.NET Core HTTP 客户端的正确打开方式2025-09-26 08:01 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important;…

石家庄整站优化技术园区网互联及网站建设项目

目录 统一数据返回一. 概念二.实现统一数据返回2.1 重写responseAdvice方法2.2 重写beforeBodyWriter方法 三. 特殊类型-String的处理四. 全部代码 统一数据返回 一. 概念 其实统一数据返回是运用了AOP(对某一类事情的集中处理)的思维,简单…

自助建个人网站哪个好购物网站框架

在 PHP 中,多进程的处理通常会遇到一些挑战,比如资源共享、进程间通信、性能优化等。Swoole 是一个高性能的协程和多进程框架,旨在为 PHP 提供异步、并发、协程等功能,解决了传统 PHP 环境中的多进程管理问题。通过使用 Swoole&am…

华为投的这家上海独角兽,要IPO了!

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087近日,赛美特信息集团股份有限公司(以下简称“赛美特”)正式向港…

0134_委托模式 (Delegate)

委托模式 (Delegate) 意图 两个对象参与处理同一个请求,接收请求的对象将请求委托给另一个对象来处理。 委托模式的核心思想是:一个对象将某些职责交给另一个专门的对象去完成,从而实现职责的分离和代码的复用。 UM…

外贸网站建设公司平台中建国能建设集团网站

强烈建议去看看《上海交通大学生存手册》,内容可能有点长,但讲得很好,说出了大学教育的本质。如果几年前我能看到它,也许我的大学生活可能会不一样。 只是,没有如果。 那么我把这本手册推荐给正在上大学或者是将要上…

注册过哪些网站瑞丽航空公司官方网站

https://vjudge.net/problem/UVA-11971 有一根长度为n的木条&#xff0c;随机选k个位置把它们切成k1段小木条。求这些小木条能组成一个多边形的概率。 将木条看做一个圆&#xff0c;线上切k刀等价于圆上切k1刀 如果能组成多边形&#xff0c;每一段木条的长度都要<圆周长/2 反…

个人或企业做网络贸易的主要网站企业信用信息查询公示系统网址

ChatGLM2-6B介绍&#xff1a; 介绍 ChatGLM2-6B 是开源中英双语对话模型 ChatGLM-6B 的第二代版本&#xff0c;在保留了初代模型对话流畅、部署门槛较低等众多优秀特性的基础之上&#xff0c;ChatGLM2-6B 引入了如下新特性&#xff1a; 更强大的性能&#xff1a;基于 ChatGLM 初…

网站被黑了多久恢复wordpress 文章免审核

值转换器 valueconvert 使用ValueConverter需要实现IValueConverter接口&#xff0c;其内部有两个方法&#xff0c;Convert和ConvertBack。我们在使用Binding绑定数据的时候&#xff0c;当遇到源属性和目标控件需要的类型不一致的&#xff0c;就可以使用ValueConverter&#xf…

网站图标怎么设置建筑公司需求发布网站

SSE是server-sent events协议简称,SSE协议主要是依托于HTTP链接用来从服务端将消息、信息、事件推动给客户端的协议。 SSE简介 SSE最近突然的被很多人关注还有一个主要原因就是ChatGPT等大模型的聊天类系统就采用了SSE协议。在使用ChatGPT的时候,输入Prompt后的反馈是逐渐的…

邯郸网站设计公司排名wordpress 显示微博

大家好&#xff0c;我是『芯知识学堂』的SingleYork&#xff0c;前面给大家简单介绍了『开源项目』基于STM32的智能垃圾桶之成员简介&#xff0c;相信有很多小伙伴都已经忍不住跃跃欲试了&#xff0c;别着急&#xff0c;从这一篇开始&#xff0c;笔者将会带领大家一步一步来完成…

假如电脑的服务器关闭后做的网站还能打开吗logo在线设计生成免费

众所周知&#xff0c;验证码在我们的生活中都是非常常见的&#xff0c;很多公司都在各种折腾各种各样的验证码&#xff0c;这里简要的用一个小案例来实现验证码的功能&#xff08;ps:其实我挺讨厌验证码这个东西的&#xff09;。 建立一个javaweb工程&#xff0c;新建login.htm…

深圳微商城网站制作报价网站怎么建设以及维护

戳蓝字“CSDN云计算”关注我们哦&#xff01;极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;1975年4月4日&#xff0c;是历史上普通的一天。这一天&#xff0c;有两个人成立…

有关网站开发的国外书籍中国肩章

今天和大家一起探讨权限管理方面的设计心得。权限管理&#xff0c;是B端后台系统一个重要的组成部分&#xff0c;属于底层的支撑功能&#xff0c;系统内所有的功能&#xff0c;甚至字段的增减都涉及到权限的分配和管理。因此怎样配置后台的权限系统&#xff0c;以适应多变业务需…

南昌专业的电商网站开发公司新公司注册详细流程

作者| 沉默王二责编| Carol封图| CSDN│下载于视觉中国从 10 年前我开始写第一行 Java 代码至今&#xff0c;一直觉得 null 在 Java 中是一个最特殊的存在&#xff0c;它既是好朋友&#xff0c;可以把不需要的变量置为 null 从而释放内存&#xff0c;提高性能&#xff1b;它又是…