
C/C++编译调试
文章平均质量分 80
C/C++编译调试
瞻邈
老菜鸟一个。
展开
-
child process terminated with code错误码
负数表示子进程被操作系统信号终止,绝对值对应信号编号。:命令未找到(Shell 环境中常见)。终止(通常是内存访问错误,如段错误)。:命令未找到(如拼写错误的命令)。:通用错误(如脚本语法错误)。原创 2025-04-27 13:32:28 · 153 阅读 · 0 评论 -
C++链接问题分析
本文中,我们将深入探讨C++编程过程中的编译与调试环节。编译是将源代码转化为可执行程序的重要步骤,而调试则是确保程序正确运行的关键环节。本文将首先介绍C++编译的基本流程,包括预处理、编译、汇编和链接等阶段,帮助读者理解从源代码到可执行程序的转化过程。接着,我们将详细讲解调试的方法和技巧,包括使用调试器、设置断点、查看变量值等,帮助读者在程序出现问题时能够快速定位并解决问题。通过本文的学习,读者将能够掌握C++编译调试的基本知识和技能,提高编程效率和代码质量。原创 2024-11-19 09:42:58 · 753 阅读 · 1 评论 -
Ubuntu安装cmake
在软件开发的世界中,构建系统扮演着至关重要的角色,它们确保代码能够正确、高效地编译和链接。CMake就是这样一个强大的跨平台自动化构建系统,它被广泛用于各种大型项目中。对于Ubuntu用户来说,安装CMake非常简单,而且这个过程几乎不需要任何复杂的配置。本文将为您提供在Ubuntu系统上安装CMake的详细步骤,让您能够轻松地开始使用这个强大的构建工具。原创 2024-05-14 08:00:30 · 1173 阅读 · 0 评论 -
Ubuntu安装gcc/g++
GCC(GNU Compiler Collection)是由GNU项目开发的一套广泛使用的开源编译器集合。它支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada和其他语言。GCC是一个强大而灵活的编译器,被广泛用于开发各种应用程序、库和操作系统。G++是GCC编译器中用于编译C++程序的前端工具。它支持C++11、C++14、C++17等不同版本的C++标准,并提供了对C++特性的广泛支持。G++通过将C++源代码编译为可执行文件来转换C++程序。原创 2024-04-22 09:13:01 · 1997 阅读 · 0 评论 -
shared_from_this使用中运行错误bad_weak_ptr原因分析
前几天解了一个bug,表象是调用shared_from_this的时候就跑出bad_weak_ptr异常,类A明明是继承自boost::enable_shared_from_this的,一时搞不明白为什么,后来搜了下出现“bad_weak_ptr异常”可能的原因才找到问题所在:创建类A的对象的时候没有用智能指针包裹,而是直接new的裸指针。......原创 2022-08-12 09:13:40 · 3177 阅读 · 0 评论 -
Linux Core Dump分析
当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操作系统状态和信息。core dump 对于编程人员诊断和调试程序是非常有帮助的,因为对于有些程序错误是很难重现的,例如指针异常,而 core dump 文件可转载 2022-07-08 19:26:22 · 2508 阅读 · 0 评论 -
C++程序环境变量使用
修改如下两个文件中的任意一个即可其中,/etc/profile是全局的环境变量,对所有用户生效,而.bash_profile只对当前用户起作用。原创 2022-05-07 23:22:36 · 3535 阅读 · 0 评论 -
C++调试命令
本文全面梳理了 C++中的调试命令。详细介绍了常见调试工具的使用方法及相关命令,如 GDB 调试器中的设置断点、查看变量值、单步调试等命令。通过实际案例展示这些调试命令在查找和解决程序错误中的强大作用,帮助 C++开发者提升调试效率,快速定位和解决代码中的问题,从而编写出更加稳定和可靠的程序。原创 2022-04-27 23:06:10 · 665 阅读 · 0 评论 -
C++运行问题汇总
默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定--prefix,会将库安装在/usr/local/lib目录下;也就是说,/usr/local/lib目录不在系统默认的库搜索目录中,需要将目录加进去。因为上述的被调函数和调用它的函数处在不同的链接库中,而这两个库在编译时使用了不同的编译选项,这会导致Eigen::Quaterniond在内存解析时会有所有不同,而调用时使用的又是const引用的方式进行传参,所以会出此问题。原创 2021-06-08 18:17:13 · 893 阅读 · 0 评论 -
C++调试工具
dmesg,一种程序,用于检测和控制内核缓冲。程序用来帮助用户,了解系统的启动信息,可以获得出错堆栈地址。addr2line,可以将指令的地址和可执行映像转换成文件名,函数名或源代码的工具。这种功能将跟踪地址转换成更有意义的内容来说很有用。在调用 addr2line 工具时,要使用 -e 选项来指定可执行映像,使用 -f 选项可以告诉工具输出函数名。先通过dmesg找到对应出错的地址,再用 addr2line -e 将地址解析到对应的代码行。原创 2021-04-14 14:37:31 · 2016 阅读 · 0 评论 -
C++编译问题汇总
本文聚焦于 C++ 编程过程中常遭遇的各类编译问题。深入剖析从代码语法错误,如变量未定义、类型不匹配等基础问题,到复杂的模板编译错误、头文件包含冲突等。详细探讨链接阶段可能出现的库文件缺失或不匹配的情况,以及不同编译器对 C++ 标准支持差异所引发的兼容性问题。通过对这些典型编译问题的总结与分析,结合实际案例阐述错误表现形式、根源所在以及有效的解决策略,旨在帮助 C++ 开发者快速定位并解决编译时遇到的困扰,提升开发效率,确保程序顺利编译与运行,为深入学习与应用 C++ 语言提供有力的编译问题处理参考指南。原创 2021-01-07 11:09:58 · 2196 阅读 · 1 评论 -
C++忽略第三方库的警告
C++ 或者gcc选项如何设置,才能禁用第三方库的警告(比如boost库的警告)。#pragma这种在源代码级别禁用警告的方法不算(这种方法不是我需要的)。如果可以,cmake中如何设置(这个算另外一个问题吧。)。(提问前,我已经google,baidu过了,没有找到有用的文献。)原创 2020-12-24 18:23:40 · 2694 阅读 · 2 评论 -
CMakeLists
CMake是跨平台编译工具,比make更高级一些。其编译的主要工作是生成CMakeLists.txt文件,然后根据该文件生成Makefile,最后调用make来生成可执行程序或者动态库。所以基本步骤就只有两步原创 2020-12-21 17:50:27 · 2091 阅读 · 1 评论