自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(97)
  • 资源 (3)
  • 问答 (2)
  • 收藏
  • 关注

原创 记录一次难搞的编译错误-- qml-rust 项目编译无法找到QtCore库的问题

Qml+rustCMake+Cargo

2024-03-15 20:27:19 988 1

原创 qml和C++数据交互之QQmlListProperty以及两种创建方式。

两种方式,实现QQmlListProperty,从而在qml中可以给C++的类增加属性,或者将C++的QList数组作为Qml中的modeldata使用。

2023-02-22 10:49:47 1185 1

原创 mac m1设备上安装Qt并使用qt编程遇到的问题以及解决方式

图文手把手解决M系列处理器安装Qt以及编译问题。

2023-02-19 15:51:07 1943

原创 设计模式 - 如何在库和主程序之间互相调用数据和函数

如何设计一个能在App和Lib中互相调用的结构,使函数、变量能够通过这个结构互相调用。

2023-02-19 15:46:32 541

原创 error LNK2001: unresolved external symbol “public: static struct QMetaObject 报错

error LNK2001: unresolved external symbol "public: static struct QMetaObject 报错

2023-01-10 15:43:06 1687

原创 Ignoring CMAKE_OSX_SYSROOT because the directory does not exist.

今天更新mac的xcode遇到了这个问题

2022-11-08 20:23:44 246

转载 如何通过CMake为QML创建插件

通过Cmake为QML创建插件

2022-07-17 16:16:31 734

原创 Ubuntu 禁用向日葵的服务自启动

Ubuntu禁用向日葵的服务自启动。

2022-07-17 16:15:28 986

原创 mac m1设备上安装Qt并使用qt编程遇到的问题以及解决方式

简单介绍M1平台使用qt编程会遇到的问题以及解决方式

2022-07-17 15:53:39 7328 3

原创 Mac Qt Creator通过open Terminal Here打开Iterm2的新窗口或者标签页

Mac Qt Creator通过open Terminal Here打开Iterm2的新窗口或者标签页

2022-07-06 09:50:06 670 5

原创 qmlplugindump executable not found.It is required to generate the qmltypes file for VTK Qml

遇到什么问题,直接找到问题相关的代码,然后从源头进行解决即可。

2022-06-29 14:36:51 564

原创 Mac安装的应用权限不够导致“XX” is damaged and can’t be opened. You should move it to the Trash 解决方案

mac平台新安装的应用无法打开的解决办法

2022-06-28 21:49:32 19663

原创 《C++性能优化指南》 linux版代码及原理解读 第八章 使用更好的库

本章节大部分都是概念上的讲解,这里用最后的总结做本章的全部内容。

2022-06-16 16:24:17 175

原创 《C++性能优化指南》 linux版代码及原理解读 第七章 优化热点语句

本章主要通过介绍函数相关的开销以及不同的函数实现导致的开销,提醒我们在写函数的时候可以根据实际情况灵活的实现函数,从而提高程序的性能。

2022-06-16 16:06:13 368

原创 《C++性能优化指南》 linux版代码及原理解读 第六章 优化动态分配的变量

本章主要通过讲解C++中的变量(变量的生命周期、所有权等),以及变量相关的操作(分配、析构、智能指针托管)所产生的开销对性能的影响等,通过深入介绍相关的流程,解释其中所产生的开销。以及如何从多个方面减少变量所带来的开销,从而对性能进行优化。(通过代码解释为什么智能指针的运行效率可能比普通指针慢几百倍)

2022-05-28 14:40:39 371

原创 《C++性能优化指南》 linux版代码及原理解读 第五章

概述当一个程序的执行时间需要很快的时候,但是实际的执行时间却远远的超出了预期时间好几个量级,这个时候进行优化的方式恐怕只能从算法的层面进行改进。大多数的优化方式对于性能的改善是线性的,但是更高效的算法有时候会使性能呈现指数的增长。本章主要通过常见的几种排序和查找算法,对这个问题进行阐述。

2022-04-26 16:24:41 1752

原创 《C++性能优化指南》 linux版代码及原理解读 第四章

通过案例,我们尝试将一段代码的执行时间从114 优化到2,这样的成果着实让人震惊。本章主要是通过字符串的优化来一步步引导读者深入理解什么是代码优化,以及有哪些启发式的方式。

2022-04-24 22:29:01 1536

原创 《C++性能优化指南》 linux版代码及原理解读 第三章

概述 本章开始讲解如何进行测量,在算法优化的过程中,测量这个步骤是前提,也是一个基础,我们如何判断性能优化的快慢,是通过个人的感觉,或是通过个人的经验,还是用一套准确的工具测量出优化前后的差别呢?如果没有准确的数据支持的话,如果对性能的优化是30%或者50%,那也是很难让人承认的。在本章中,作者主要讲了两种工具,一种是编译器厂商一般都会提供的分析器,如果我们搜索gcc profiler 就会发现有很多中不同的分析器可供我们选择,在下面这个网页中,甚至罗列出了好几种。profiling - ...

2022-04-19 16:25:37 493 2

原创 《C++性能优化指南》 linux版代码及原理解读 第二章

目录概述C++所相信的计算机谎言计算机的真相某些内存访问会比其他的更慢内存容量是有限的,但对于程序来说是无限的流水线停滞程序执行中的多个流调用操作系统的开销是昂贵的C++也会说谎并非所有语句的性能开销都相同语句并非按顺序执行概述本章节主要通过讲解部分计算机硬件的基本知识背景,让读者知道很多时候的计算机的表现并不如结果看起来的那样简单,甚至也不像某些书籍中教导的那样运行。所有这些被广泛使用的计算机都会执行存储在内存中的指令。...

2022-04-17 17:03:31 1226

原创 《C++性能优化指南》 linux版代码及原理解读 第一章

本章主要是从宏观的角度分析为什么要进行性能优化,以及性能优化的几个点。

2022-04-17 12:16:32 1148

原创 <<C++性能优化指南>> linux版代码及原理解读 序

本系列主要是在复读《C++性能优化指南》这本书时用于记录要点的文章

2022-04-17 10:09:41 151

原创 Linux平台应用打包的几种方法(qt/dll --> exec|appimage)

首先,linux平台常用的打包方式,就是通过ldd查看依赖库,然后将依赖库的依赖复制过来,然后写一个脚本,让用户在运行的时候,运行这个脚本,然后这个脚本设置好环境变量(主要是将依赖库添加到环境变量中),这样用户在运行的时候就可以通过运行脚本来运行目标软件了。第一个例子:ldd/path/to/app | cut-d">"-f2 | greplib | cut-d"("-f1 | xargstar-chvfApplib.tar这个会将所有的依赖打包成Appl...

2021-06-22 09:08:02 1079

原创 qt生成库文件之后自动复制到指定目录

目的 qt编译完成一个库之后,自动将这个库复制到指定目录下。Step1: 在Pro文件中添加如下:win32{ CONFIG(release,debug|release){ target.path = DIR\YOU\Want\COPY\TO target.files += DIRPATH\xxx.dll }}INSTALLS += targetStep2: 打开项目的config,make后面添加参...

2021-04-07 20:18:38 2245

原创 QT 通过config指定release和debug模式

在Pro文件中添加如下格式unix { Things to do.}win32{ CONFIG(release,debug|release){ Things to do. }else{ Things to do. }}有两点注意,第一,CONFIG()后面的左大括号要和config在同一行。else后面的大括号同理。5.14.2之前的版本没有处理这个BUG。...

2021-04-07 20:14:40 1112

原创 Error: no override found for ‘vtkRenderWindow‘.出现的原因以及三种解决办法

Error: no override found for 'vtkRenderWindow'.出现的原因以及三种解决办法在Qt添加了QvtkWidget控件之后,如果报错如下:Generic Warning: In /home/allen/soft/pcl_vtk_qt/VTK-8.1.0/Rendering/Core/vtkRenderWindow.cxx, line 43Error: no override found for 'vtkRenderWindow'.首先,出现这个问题的

2021-01-29 14:58:40 2360 1

原创 c++ shared_ptr:从循环引用导致内存泄漏到shared_ptr介绍再到析构流程分析

背景: 在以前的c++的申请内存中,一般是使用new/delete或者malloc/free这两对内存管理操作来实现,但是malloc和new却是有一些区别的,当使用malloc的时候,他是系统提供的函数,它会在堆内申请对应大小的内存,然后返回内存初始地址的一个void*的指针,而如果使用new的话,它是一个操作符,可以由编译器控制,所以在申请一个堆上内存的同时,还会调用所申请对象的一个默认构造函数,反过来,在释放内存的时候也是这样。在使用这种申请/释放内存机制时,就不可避免的会出现几个问题,..

2021-01-04 16:31:29 753

原创 c++ Vector之erase(导致迭代器失效)vector.erase源码解析

最近偶然遇到了一个问题,某个人和我聊的时候问我,c++的vector如果进行某个元素删除的话,有哪些方法,我给他列举了一个方法,#include <iostream>#include <vector>#include <stdio.h>template <typename T>void showvec(T& vec_){ for(auto &p:vec_) { std::cout<<p

2020-12-31 10:55:12 2251

原创 联想yoga14s 2021Amd版本Ubuntu 系统问题 同样适用与4800H的其他笔记本。

在使用联想yoga14s 2021 Amd版本(以下简称Yoga)的过程中,遇到了一些问题,这里简单记录一下。1重新安装Win10系统之后,联想的触摸板可以用,但是无法无法调节亮度,这时需要安装显卡驱动。其次,没有了野兽模式,这个可以通过在Win10商店搜索 lenovo unility 解决。驱动下载地址:联想驱动官网2安装Ubuntu 系统过程中,卡在Logo界面无法进入,目前觉得可能的问题是,内核5.8之前的版本,对Amd显卡的驱动不支持,所以会出现这种无法进入系统的情况。解决办.

2020-11-20 08:47:26 4668 17

原创 c++ 如何优雅的传递函数以及类成员函数

在一般的方法中,基本上传递函数都是通过传递函数指针的方式来实现。但是最近发现,频繁的传递函数、类成员函数不太是一个好的办法,所以在这里梳理一下常见的几种方法以及如何更方便的传递函数。如果是普通函数的话,一般这样#include <iostream>int add(int a, int b){ return a + b;}int main(){ int (*func) (int, int); func = add; std::cout << "func.

2020-10-21 14:52:05 5350

原创 QVTK 添加Sphere 设置SetRenderWindow

本想在Qvtk中添加一个图形,本想直接添加个图形进去就行了,但是我需要做一个鼠标交互事件,所以查阅资料之后发现需要使用到RenderWindow以及renderWindowInteractor来重新实现某些交互事件,所以我就将图形添加到actor中,然后actor加入到renderer中,最后使用QVTK的SetRenderWindow函数将其导向设置好的RenderWindow上,接下来正常显示。demo代码:#include "mainwindow.h"#include "ui_mainwi

2020-10-19 15:42:38 1326

原创 Qt捕捉窗口关闭事件

今天在Qt开发过程中遇到一个问题,本来我想在窗口关闭的时候将配置写入文件中,于是我将操作放入了默认的析构函数中,结果在窗口关闭之后,析构函数并不执行,所以我转而使用窗口关闭事件,来触发我想执行的操作。我写的类是继承自QWidget,class setting : public QWidget它所包含的默认的信号函数只有这几个:并没有我能用到的函数。从网上查找了一下,发现可以通过继承QWidget默认的虚函数closeEvent(QCloseEvent* event);来实现窗口关.

2020-10-09 10:35:14 3559

原创 Windows VTK-8.1 未能正确加载解决方案中的一个或多个项目

在上一篇文章中 使用如下的方案生成VTK的CMAKE文件时VTK_Group_Qt ONVTK_QT_VERSION 5 # by default 4Qt5_DIR D:/Qt/Qt5.9.9/5.9.9/msvc2017_64/lib/cmake/Qt5CMAKE_INSTALL_PREFIX C:/Program Files/VTK # by defaultBUILD_SHARED_LIBS ONCMAKE_CONFIGURATION_TYPES Release # ...

2020-09-27 11:15:33 435

原创 PCL1.9.1 VTK8.1.0 vtkoutputWindow最全解决办法

使用Qt编译程序的时候,VTK一直弹窗如下:现有的解决方法:第一种方法在main文件之上添加如下代码:#include "QtGuiApplication5.h"#include <QtWidgets/QApplication>#include "vtkoutputwindow.h" //加入 int main(int argc, char *argv[]) {vtkOutputWindow::SetGlobalWarningDisplay(0); //加入

2020-09-25 10:38:28 1912 8

原创 PCD点云文件框选代码

背景:PCL + VTK项目地址:https://github.com/dezbracaty/PCD_Area_cut_tool后期添加其他功能maybe通过PVL_VISUALIZATION显示点云图像,然后通过按X进入框选模式,然后接受PCL::VISUALIZATION返回的点云索引,然后通过索引将所选择的点云文件导出。函数介绍:pcl::visualization::PCLVisualizer::Ptr viewer(new pcl::visualization::PC.

2020-09-24 09:56:59 739

翻译 Windows C++ 多线程程序 c++17

环境: VS2017#include <iostream> #include <thread> #include <mutex> #include <memory> #include <vector> #include <algorithm> constexpr auto newl = '\n'; const std::unique_ptr<std::mutex> cout_mutex_ptr...

2020-09-22 19:27:31 299

原创 解决:Error: no override found for ‘vtkRenderWindow‘.

环境:系统 : Windows 10QT Creator : 4.11.1QT Designer: 5.14.2 MSVC 2017 x64PCL : 1.11.1VTK : 8.1.0MSVC : 2017 x64.报错信息:01:25:32: Starting D:\QtProjects\GUI_TOOLS\Release\releas...

2020-09-22 09:31:29 1044

原创 从零开始ROS编程-PCL点云库安装

系统环境:Ubuntu 18.04QT版本 : 5.9.9VTK : 8.1.0PCL : 1.9.1下载链接:https://github.com/PointCloudLibrary/pcl/archive/pcl-1.9.1.tar.gz安装依赖:sudo apt-get update\nsudo apt-get install git build-essential linux-libc-dev\nsudo apt-get insta...

2020-09-17 18:35:06 1736

原创 从零开始ROS编程-VTK安装

系统环境:Ubuntu 18.04QT版本 : 5.9.9VTK : 8.1.0下载链接:wget https://www.vtk.org/files/release/8.1/VTK-8.1.0.tar.gzwget https://www.vtk.org/files/release/8.1/VTKData-8.1.0.tar.gz依赖库安装:sudo apt install libqt5x11extras5sudo apt install libqt...

2020-09-17 16:59:40 731

原创 从零开始ROS编程-QT安装

系统环境:Ubuntu 18.04Qt版本: 5.9.9下载链接:https://download.qt.io/official_releases/qt/5.9/5.9.9/删除预装软件:sudo apt-get purge qt5-default qtcreator sudo apt-get purge qt4-designer qt4-dev-tools安装依赖:sudo apt-get install build-essential libgl1-mesa-...

2020-09-17 15:57:54 274

原创 Windows10下QT+VTK+PCL环境配置(一次成功)

环境内容:系统:Windows10QT:Qt5.9.9Pcl:1.9.1VTK:0.8.1VTKDATA:0.8.1Visual Studio:20171:安装VS2017直接安装2:安装Qt在安装qt时勾选安装qt的所有部件。安装完成后 进入VS2017在工具--扩展和更新--联机中搜索qt,安装qt visual studio tools .然后打开VS2017 这时最上面的工具栏会出现QTVSTOOLS,打开其中的QT options,选择add .

2020-09-14 10:46:40 5326 14

Kubuntu最新内核版本

适用于Amd 系列笔记本,可以直接启动运行。解决蓝牙驱动、显卡驱动、声音驱动等等问题。其中有5.9.8和5.10.rc4两个版本的内核,系统都是Kubuntu20,04

2020-11-20

pcl_1.9.1_pcl_visualization_release_no_vtkoutputwindow_dll

使用此文件替换pcl1.9.1安装目录/bin/下的对应文件,然后重新编译程序即可。注意将文件名后面的_no_warning删除

2020-09-25

数据包及相关资源.txt

文档包含: ros数据包: 使用velodyne 3D激光录制的厂房数据,其中包括激光以及里程计数据 launch文件:使用数据包进行hector_slam建图所需的launch文件以及文件使用说明

2020-03-26

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除