- 博客(43)
- 收藏
- 关注
原创 linux下如何查看某软件是否已安装/安装位置
3、yum方法安装的,可以用yum list installed查找,如果是查找指定包,命令后加 | grep “软件名或者包名”;1、rpm包安装的,可以用rpm -qa看到,如果要查找某软件包是否安装,用 rpm -qa | grep “软件或者包的名字”。2、以deb包安装的,可以用dpkg -l能看到。如果是查找指定软件包,用dpkg -l | grep “软件或者包的名字”;4、如果是以源码包自己编译安装的,例如.tar.gz或者tar.bz2形式的,这个只能看可执行文件是否存在了,
2024-07-16 13:55:53 106
原创 Linux内核学习记录
Linux内核将不同功能的外部设备,例如Disk设备(硬盘、磁盘、NAND Flash、Nor Flash等)、输入输出设备、显示设备等等,抽象为可以通过统一的文件操作接口(open、close、read、write等)来访问。另外,内存管理会提供虚拟内存的机制,该机制可以让进程使用多于系统可用Memory的内存,不用的内存会通过文件系统保存在外部非易失存储器中,需要使用的时候,再取回到内存中。内核空间是 Linux 操作系统的主要部分,但是仅有内核的操作系统是不能完成用户任务的。
2024-07-16 13:53:30 264
原创 WARNING: Logging before InitGoogleLogging() is written to STDERR 解决办法
可能原因是在调用Glog进行信息纪录前未对Glog进行构造,Glog未能在初始化时检索到日志文件存储路径等信息。调用Glog初始化构造即可。
2024-07-16 11:13:06 206
原创 windows下使用#include <nlohmann/json.hpp>
3.修改工程属性:在Visual Studio中,打开项目属性,找到“C/C++”选项下的“附加包含目录”,将刚才拷贝的include文件夹的路径添加进去。1.下载并解压:首先,需要从nlohmann/json的GitHub仓库下载源代码,并解压得到的文件。2.拷贝头文件:解压后,会得到一个名为include的文件夹,将该文件夹下的所有文件拷贝到的工程文件夹下。
2024-07-16 10:27:14 229
原创 opencv窗口嵌入qt
opencv捕获摄像头数据并进行图像处理后,显示在qt窗口上。显示在QLabel控件cameraView上。将Mat转成QImage格式。
2024-07-15 16:44:14 64
原创 vim使用记录
粘贴:在想要粘贴的地方按下p 键【将粘贴在光标所在行的下一行】,如果想粘贴在光标所在行之前,则使用P键。如果一个文件在编辑时没有名字,则可以使用:wq 文件名称,代表把当前正在编辑的文件保存到指定的名称中,然后退出。③ 针对整个文档中的所有行进行替换,只替换每一行中满足条件的第一个结果。:s/要替换的关键词/替换后的关键词/g g=global全局替换。② 替换光标所在这一行中的所有满足条件的结果(替换多次,只能替换一行)① 只替换光标所在这一行的第一个满足条件的结果(只能替换1次)
2024-07-15 14:50:18 765
原创 [编译报错]configure: error: cannot guess build type; you must specify one
/configure --build=arm-linux 指定架构。
2024-07-11 10:37:25 147
原创 [arm版qt编译报错]57:10: fatal error: charconv: No such file or directory #include <charconv>
gcc版本过低导致charconv: No such file or directory。
2024-07-11 10:34:43 176
原创 引用&常用用法
所做的任何修改都会反映到原始向量上。这是因为引用提供了对原始对象的间接访问。作为参数传递给函数时,实际上发生的是向量的拷贝。传递std::vector<UpdateItem> items;修饰符确保函数内不能修改传入的字符串,保护数据不被意外更改。)可以避免在函数调用时复制整个字符串,从而提高性能。:使用引用传递(尤其是对于大型数据结构,如。
2024-07-11 09:48:56 205
原创 [install报错]The package code needs to be reinstalled, but I can‘t find an archive for it.
打开 /var/lib/dpkg/status 文件, 查找安装未成功的安装包,譬如搜索关键子 “half” ,将安装包相关信息删除。然后重新安装一下安装包即可。
2024-07-10 10:24:20 85
原创 CMake多版本控制
个人的理解:当我们在使用CMake这个工具的时候,系统会找到这个路径下的CMake,那么这个路径下应该就是我们原本的CMake。我们把他删除了之后,将pip安装的CMake软链接到这个路径下,这里的软链接我们可以理解为是创建了一个快捷方式。就可以安装多个CMake版本,在切换版本的时候只需要重新软链接我们需要的版本就可以了。
2024-07-09 14:51:50 250
原创 [报错]dpkg: error processing package code (--install): dependency problems - leaving unconfiguredPro
执行sudo dpkg -i code_1.90.2-1718750608_arm64.deb。出现这个错误的原因是之前安装软件的时候出现中断情况,或者你强行终止安装导致不完全的安装。
2024-07-09 08:11:38 308
原创 opoencv踩坑记录
,OpenCV 会尝试使用默认的接口来访问摄像头。在大多数情况下,这应该是足够的,但如果遇到问题,你可以尝试显式地指定。设置为cv::VideoCapture cap(device, cv::CAP_V4L2);cv::VideoCapture cap(device)画面会卡住。如果没有指定捕获接口(即直接使用。来确保使用 V4L2 接口。
2024-07-07 18:07:13 161
原创 [sqlite报错]Errors were encountered while processing: nvidia-l4t-bootloaderE: Sub-process /usr/bin/d
【代码】[sqlite报错]Errors were encountered while processing: nvidia-l4t-bootloaderE: Sub-process /usr/bin/d。
2024-07-04 13:58:57 79
原创 线程同步线程互斥
线程互斥在多线程环境中运行的代码段,需要考虑是否存在竞态条件,如果存在竞态条件,我们就说该代码段不是线程安全的,不能直接运行在多线程环境当中,对于这样的代码段,我们经常称之为临界区资源,对于临界区资源,多线程环境下需要保证它以原子操作执行,要保证临界区的原子操作,就需要用到线程间的互斥操作-锁机制,thread类库还提供了更轻量级的基于CAS操作的原子操作类。存在竞态条件的代码段(临界区代码段):代码在多线程的环境下执行,随着线程调度顺序不同,结果不同。----->原子操作。
2024-07-03 21:17:41 140
原创 GDB指令
💜d(delete) + 当前要删除断点的编号 —— 删除一个断点【不可以d + 行号】💜disable b(breakpoint) + 编号 —— 使一个断点无效【禁用断点】💜c(continue) —— 从一个断点处,直接运行至下一个断点处【VS下不断按F5】💜enable b(breakpoint) + 编号 —— 使一个断点有效【开启断点】💜enable b(breakpoints) —— 使所有断点有效【默认缺省】💜r(run) —— F5【无断点直接运行、有断点从第一个断点处开始运行】
2024-07-03 16:30:47 296
原创 sdk外部库链接问题
在使用百度云sdk过程中,遇到一个奇怪的问题,imshow调用错误,提示缺少两个依赖,但查看环境发现已经安装,检查发现,sdk中的third_partybufen的opencv2导致。我的环境本身的opencv可以正常使用,加载图像,直接用安装好的opencv库替换sdk中的opencv,报一样的错。直接删除sdk中opencv包,在cmake里find搜索ubuntu已安装的opencv,成功解决。
2024-07-03 15:43:23 77
原创 是否设计为多线程参考(CPU密集,I/O密集)
并发,cpu单核串行I/O操作,就是将数据写入或从内存输出的过程,也指应用程序和外部设备之间的数据传递,常见的外部设备包括文件、管道、网络连接。常见IO流操作,一般指内存与磁盘间的输入输出流操作。
2024-07-02 20:41:00 288
原创 dpkg: error processing package ***(--install): dependency problems - leaving unconfigured
sudo apt install -f
2024-07-02 16:45:38 377
原创 静态库和动态库
库是一组预先编译好的方法的集合,是计算机上的一类文件,提供给使用者一些开箱即用的变量、函数或类。库文件分为静态库和,静态库和动态库的区别体现在程序的链接阶段。Linux的静态库扩展名是 .a,静态库文件名的命名规范是以 lib 为前缀,紧接着跟静态库名,扩展名为.a。例如:我们将创建的静态库名为mian,则静态库文件名就是libmain.a。动态库扩展名是 .so编译后的库文件的源代码被加密,使用者看不到,可保密。Linux库有两种,一种是静态库,其命令规则为 libxxx.a;
2024-06-27 13:41:46 181
原创 bash: pip: command not found
bash: pip: command not foundpip install opencv-contrib-python-> pip3 install opencv-contrib-pythonpython3 -m pip --version pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6) python --versionPython 2.7.17
2024-06-27 11:27:22 90
原创 常用通讯协议
是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。发送数据接收数据的过程 串口控制器管理,其提供寄存器自己设置波特率,传递位数等。通用异步收发器,串行,异步。异步:收发双方时钟不同步。
2024-06-27 10:05:54 118
原创 gcc, g++使用记录
(3)编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。因为gcc命令不能自动和C++程序使用的库联接,所以通常使用g++来完成联接。但在编译阶段,g++会自动调用gcc,二者等价。(1)gcc与g++都可以编译c代码与c++代码。但是:后缀为.c的,gcc把它当做C程序,而g++当做是C++程序;(2)编译阶段,g++会调用gcc,对于c++代码,两者是等价的,但是因为gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接。选项,默认生成的可执行文件名为。
2024-06-26 20:26:38 197
原创 VM虚拟机使用问题记录
遇到一个很坑的问题,前一天晚上虚拟机一切正常,第二天早上就突然打不开,怀疑是晚上系统自动更新的原因,排查后发现是.vmx文件损坏的问题。把个CONFIGURATION 和 USER DEFAULTS 之间的内容拷贝出来使用。通过新建一个虚拟机,再导入磁盘文件,避开出问题的vmx文件。去掉前面的时间前缀后拷贝到vmx里。格式打开vmvare.log。
2024-06-21 11:51:17 124
原创 make指令报错记录
查看帖子,发现是由于使用了make install指令,权限问题,执行sudo make install解决。:执行make clean 清除上一次生成的可执行文件,再次执行make命令。
2024-06-21 11:11:19 469
原创 ubuntu20.04下web网页嵌入qt,qwebengine视频无法传播的问题
但webengine有一个致命问题,没办法正常播放web端视频(可能是版权原因),看帖子编译过程漫长且极易出错,遂打算采取别的办法。一开始尝试用ubuntu18.04编译,死活不行,随后换成ubuntu20.04成功。web端视频通过channel组件调用qt端播放器,尝试了vlc,mplayer.qt内嵌浏览器,通过浏览器再去调用网页,利用浏览器播放视频。均失败,只能选择编译。
2024-06-20 18:06:35 152
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人