C++
文章平均质量分 66
coco_1998_2
所有出自我手底下的东西,我自己收益最丰--侯俊杰
展开
-
Ubuntu 22.04 下 CURL(C++) 实现分块上传/下载文件源码
首先向服务器 restful api 接口 /common发送 Post 请求 ,服务器端返回 project guid。读取本地文件,按照给定 chunk_size(例如 10240 byte),不断循环向服务器 restful api 接口 /upload_chunk 发送数据,直到文件传输完成。视频上传后,在服务器端做 3D 建模,耗时1-2小时,故拆分步骤,首先向服务器发送请求生成 project_guid, “刷新”按钮不停获取服务器状态。# 查找libcurl组件。原创 2024-06-12 08:24:41 · 332 阅读 · 0 评论 -
Ubuntu22.04 下 pybind11 搭建,示例
Pybind11 是一个轻量级的库,用于在 C++ 中创建 Python 绑定。原创 2024-06-07 10:29:43 · 723 阅读 · 0 评论 -
Ubuntu 22.04,Qt6.6 C++工程,CMakeLists find_package(CURL CONFIG REQUIRED) 找不到Curl库错误
这将告诉 CMake 在哪里查找 CURL 库的配置文件。原创 2024-06-06 09:40:39 · 209 阅读 · 0 评论 -
Eigen 库介绍,Ubuntu22 下安装 Eigen
Eigen 是一个高级的 C++ 库,用于线性代数、矩阵和向量运算、数值解决以及其他数学计算。它被设计为高效、易用,并且能够与 C++ 的特性无缝集成。Eigen库广泛应用于科学计算、工程、机器学习和计算机图形学等领域。原创 2024-06-05 16:26:23 · 830 阅读 · 0 评论 -
Ubuntu 22.04, 如何让VSCode中的cmakelist高亮显示
安装cmake插件即可。原创 2024-05-30 15:53:47 · 361 阅读 · 0 评论 -
C++ 使用 nlohmann/json 库
nlohmann是一个C++的JSON库,它提供了方便的方式来解析、生成和操作JSON数据。该库由nlohmann编写,是一个开源项目,被广泛应用于C++开发中。nlohmann库提供了简单易用的API,可以轻松地将JSON数据解析为C++对象,或者将C++对象序列化为JSON数据。它支持各种数据类型,包括字符串、数字、布尔值、数组和对象等。我们可以使用简洁的语法来访问和操作JSON数据,使得编写JSON处理代码变得更加简单和高效。原创 2024-05-30 12:18:59 · 844 阅读 · 0 评论 -
编译错误 gcc: error trying to exec ‘cc1plus‘: execvp: no such file or directory 解决,gcc、g++ 指定版本安装及切换
编译C++代码时出现 gcc: error trying to exec ‘cc1plus’: execvp: no such file or directory的错误,导致问题的原因可能是因为没有安装 g++,或是已安装的 gcc 和 g++ 版本号不一致不兼容导致。再用 gcc -v 和 g++ -v 分别检查 gcc 和 g++ 的版本号, 看版本号是否一致,若不一致,请安装同一个版本的gcc和g++。原创 2024-05-23 13:33:04 · 295 阅读 · 0 评论 -
Makefile入门
在一些大工程中,会把不同模块或不同功能的源文件放在不同的目录中,我们可以在每个目录中都写一个该目录的Makefile这有利于让我们的Makefile变的更加简洁,不至于把所有东西全部写在一个Makefile中。这里先将所有.c 文件编译为 .o 文件,这样后面更改某个 .c 文件时,其他的 .c 文件将不在编译,而只是编译有更改的 .c 文件,可以大大提高大项目中的编译速度。经过上面的赋值后,最后VIR_B的值是AA B,而不是A B,在make时,会把整个Makefile展开,来决定变量的值。原创 2024-05-09 16:22:46 · 327 阅读 · 0 评论 -
hpp文件:C++开发中的利器
由于hpp文件本质上是作为h文件被调用者include,所以当hpp文件中存在全局对象或者全局函数,而该hpp被多个调用者include时,将在链接时导致符号重定义错误。hpp文件中的静态成员在编译时会被编译到调用者的obj文件中,这会导致多个调用者共享同一个静态成员。原文链接:https://blog.csdn.net/ningmoon/article/details/136115538。无需再将cpp加入到项目中进行编译,将代码直接编译到调用者的obj文件,不再生成单独的obj,大幅度减少编译次数。转载 2024-05-09 13:03:27 · 30 阅读 · 0 评论 -
GDB 检测内存泄漏相关 (Linux C++)
内存泄漏检测:使用GDB在malloc和free函数设置断点,并打印分配和释放时的内存地址以及调用栈,然后通过脚本分析分配和释放是否配对来检测是否存在内存泄露以及发生内存泄漏的位置。内存泄漏分析脚本,检测malloc释放有配对的free,如果没有那么打印该malloc的调用栈,通过调用栈可以找到分配内存的位置。GDB检测内存泄漏命令:run(gdb)info proc (gdb)shell pmap 10683[root@...]# ps faxuUSER ...原创 2020-10-11 16:53:03 · 1779 阅读 · 1 评论 -
C++ 智能指针 shared_ptr 详解与示例
shared_ptr是C++11提供的一种智能指针类,它足够智能,可以在任何地方都不使用时自动删除相关指针,从而帮助彻底消除内存泄漏和悬空指针的问题。它遵循共享所有权的概念,即不同的 shared_ptr 对象可以与相同的指针相关联,并在内部使用引用计数机制来实现这一点。每个 shared_ptr 对象在内部指向两个内存位置:1、指向对象的指针。2、用于控制引用计数数据的指针。共享所有权如何在参考计数的帮助下工作:1、当新的 shared_ptr 对象与指针关联时,则在其构造函数中,将与此指针关联.转载 2020-09-06 20:15:48 · 586 阅读 · 0 评论 -
C++ Struct 也可以继承
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗?能!struct能继承吗?能!!struct能实现多态吗?能!!!有很多人应该已经知道这样一个事实,但总有些不知道的人,看到这些会感到很惊讶。是的,当我第一次注意到这个事实的时候,我也同样很吃惊。既然这些它都能实现,那它和class还能有什么区别?最本质的一个区别就是默认的访问控制,体现在两个方面:1)默认的继承访问权限。struct是.转载 2020-08-29 13:43:40 · 1642 阅读 · 0 评论 -
彻底理解lib和dll
转自:http://www.cppblog.com/amazon/archive/2009/09/04/95318.html两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static l...转载 2019-07-27 19:26:28 · 112 阅读 · 0 评论 -
C++中四种类型转换方式
C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:TYPE b = (TYPE)a,但是c 风格的类型转换有不少的缺点,有的时候用c风格的转换是不合适的,因为它可以在任意类型之间转换,比如你可以把一个指向const对象的指针转换成指向非 const对象的指针,把一个指向基类对象的指针转换成指向一个派生类对象的指针,这两种转换之间的差别是巨大的,但是传统的c语言风格的类型转...转载 2019-02-14 20:51:22 · 511 阅读 · 1 评论 -
C++中int与char相互转换
一、ASCII表了解int与char相互转换之前,先让我们看一下ASCII码表。其中数字字符对应的位置为:48 - 57。二、char转intchar转int之前,先将运算式中的每个字符都转换成ASCII码值,再进行计算。以下代码为例,其中i3的结果符合我们的预期要求。char c = '0';int i1 = c; // 48...转载 2019-02-14 19:37:43 · 23437 阅读 · 3 评论