- 博客(283)
- 资源 (1)
- 收藏
- 关注
原创 为什么GCC的wprintf与printf无法同时正常输出?
在GNU Linux平台上,有的用户出于好奇在同一程序中混合使用了wprintf与printf,结果发现只有其一能正常工作,百思不得其解。的确,这与Windows端的表现不一致。而在Linux平台上,只会输出。本文将解释。
2025-05-29 17:59:42
499
原创 解决报错error: ‘void_t’ is not a member of ‘std’
解决方式很简单,将编译使用的c++标准设定为c++17即可。博主是在编译ceres库时遇到的此报错。
2025-05-29 17:59:01
149
原创 设置Powershell输出流重定向到文件的编码
Powershell输出流重定向到文件的编码在6.0版本时发生了变化,老版本默认输出为UTF-16 LE编码,而新版本输出为UTF-8编码。在Windows中,系统自带的Powershell(版本为5.1)输出流重定向到文件编码固定为UTF-16 LE,与CMD的流重定向到文件编码为当前代码页(中文Windows系统为GB2312)不同。和在Powershell中运行下面的命令输出到文件的内容是不一样的。Windows Powershell的这个特点对于包含中文内容的输出极其不友好。
2025-05-26 11:59:59
170
原创 C语言利用Windows Portable Devices API访问安卓设备文件
安卓手机刚问世不久时,将手机连接到电脑是通过UMS功能,在电脑端看起来手机就像一个U盘(读取速度也像!),里面的文件一览无余。近五年来,出于对手机文件的安全性可靠性的维护,安卓系统不再提供Windows端对手机存储的全权访问接口,而是提供了MTP协议或PTP协议进行文件传输。MTP协议是目前最有效的访问安卓设备文件的协议,可以实现对文件的拷贝、删除功能。缺陷在于访问速度慢,延迟较高,且无法使用常规的C/C++文件操作函数实现其访问,无法从命令行访问其内容(关于MTP带来的问题,请看文末链接)。
2025-05-26 11:59:09
1316
原创 Windows端的C函数setlocale、printf与wprintf打印中文字符谜局小解
wprintf对于输入的字符串一般用wctomb_s转换成多字节编码,若未调用setlocale则直接将转换后的多字节编码字节流输出到标准流。调用了setlocale之后,wprintf会再额外转换一次,将多字节编码的字节流先转为Unicode编码(UTF-16 LE),然后再根据输出控制台代码页转为多字节编码,将字节流输出到标准流。这次额外的转换正是printf和wprintf在不同代码页控制台能正确输出中文字符的根源。
2025-05-25 16:42:59
987
原创 为Powershell设置代理以便运行pip、conda等指令通过代理联网
在powershell中直接使用pip按照torch等大型python库时,即便开启了代理软件,下载速度还是非常慢。这是因为powershell并不会自动将网络访问转发给代理软件。设置完成后,当前powershell窗口的命令都会通过代理联网。再次尝试pip/wget指令即可飞速下载。powershell的代理端口,则需要修改配置文件。保存,重新启动powershell即可。
2025-05-23 10:06:19
361
原创 Ubuntu安装编译Pangolin时所需的OpenGL依赖
在Ubuntu24系统中编译安装ORB-SLAM3时,CMake会检测系统中是否存在OpenGL库。
2025-05-23 10:05:10
309
原创 使用SQLite Expert个人版VACUUM功能修复数据库
SQLite Expert 是一款功能强大的SQLite数据库管理工具,分为免费的个人版(Personal Edition)和收费的专业版(Professional Edition)。相较于SQLite Studio,SQLite Expert的VACUUM操作更高效,尤其适合处理因碎片化或逻辑错误导致的数据库损坏问题。
2025-05-20 17:25:35
668
原创 使用SQLite Studio导出/导入SQL修复损坏的数据库
SQLite Studio是一款专为SQLite数据库设计的免费开源工具,支持Windows/macOS/Linux。本文介绍借助该软件导出.sqlite数据库到.sql文件,再重新导入为新的.sqlite数据库的方法(以解决原数据库损坏问题)。
2025-05-20 17:12:55
1118
原创 在CMake中利用vcpkg配置C/C++环境
许多复杂的开源项目常常依赖数个C/C++库,挨个配置依赖库是非常繁琐的劳动。所幸现在我们有了vcpkg,可以帮我们省去很多配置的劳动。是一个跨平台的C/C++库配置工具。它可以方便地下载、编译、管理大多数的开源库。其使用方式在中有详细说明。
2025-05-19 16:45:01
1477
原创 禁止在Windows命令行输入python后跳转Microsoft Store
有时开发者默认不激活Python环境,此时在命令行输入python后由于找不到python.exe,会自动跳转到Microsoft Store的Python安装页面。
2025-05-19 16:35:36
464
原创 使用PDAL库时报错:error LNK2001: 无法解析的外部符号 __imp_htons\__imp_htonl\__imp_ntohs\__imp_ntohl
error LNK2001: 无法解析的外部符号 __imp_htonserror LNK2001: 无法解析的外部符号 __imp_htonlerror LNK2001: 无法解析的外部符号 __imp_ntohserror LNK2001: 无法解析的外部符号 __imp_ntohl。
2025-05-15 12:02:53
204
原创 在Ubuntu24.04中配置开源直线特征提取软件DeepLSD
本文提供在Ubuntu24.04中配置开源直线特征提取软件DeepLSD的基础环境配置、列出需要修改的文件内容,以及报错解决方案集锦。
2025-05-14 22:13:30
1223
1
原创 Ubuntu24.04编译ORB_SLAM的一系列报错解决
报错信息:error: ‘decay_t’ is not a member of ‘std’;
2025-05-14 21:57:53
523
原创 error: no suitable conversion function from “const at::DeprecatedTypeProperties“ to “c10::ScalarType
type()调用方式已经太老,2023年以前就被废弃了,需要换成。在代码中作修改即可。
2025-05-13 11:54:53
308
1
原创 在Windows CMD和Powershell中设置、删除临时环境变量
开发者配置环境时,通常需要设置一系列的环境变量例如CUDA_HOMEPATH等等,而往往不需要直接在系统对话框中设置全局的环境变量。此时,在终端(CMD、Powershell)中为当前进程设置环境变量就很有实用性了——仅对当前终端起作用,而对系统其他应用无效。本文分别介绍在CMD中和在Powershell中设置临时环境变量的方法。
2025-05-13 11:45:21
1075
原创 通过VSCode远程连接到CentOS7/Ubuntu18等老系统
连接后在VSCode顶部依然会出现提示信息“你已连接到不受Visual Studio Code支持的OS版本”,如下图所示:也就是说,未来可能不再支持使用本文的方法来实现老系统远程连接,用户应当考虑将系统升级到较新的LTS版本。
2025-04-25 16:59:41
1912
原创 Visual Studio C/C++编译器cl.exe的/source-charset与/execution-charset设置项
指定源代码的字符编码方法。未设置该项时,按照系统默认的字符编码解析源代码文件,例如在Windows平台是GBK编码。随着跨平台开发的流行,越来越多的代码编辑器默认以utf-8编码保存源代码文件,因而需要将设置为utf-8以顺利编码其中的中文字符。特殊情况:在Windows平台中,源码文件都使用GBK或GB2312编码时,可以不必手动设置/source-charset项,亦可以正常在命令行输入、输出中文字符。
2025-04-24 16:04:58
1194
原创 解决编译pcl时报错‘chrono_literals‘: is not a member of ‘std‘
error C2039: “milliseconds”: 不是 “std” 的成员。
2025-04-24 16:03:57
324
原创 Adobe软件突然出现弹窗:This unlicensed Adobe app is not genuine and will be disabled soon.
弹窗:This unlicensed Adobe app is not genuine and will be disabled soon.如下图所示:出现这个弹窗,国内用户都明白其根本原因——大家在下载安装时采取了一些小技巧(懂的都懂)来免费使用Adobe的软件如PS、Acrobat等,本质上不是正经客户。那为何安装、正常使用一段时间后就又出问题了呢?是小技巧失效了吗?不是的。是Adobe的几道在起作用。
2025-04-23 11:52:26
3078
原创 解决COLMAP的Dense Reconstruction的Fusion过程消耗内存过高
据博主测试,在64G内存、24核48线程的intel处理器和GTX 1080Ti显卡配置的机器上,1000张尺寸为5400*3600像素的图像输入到COLMAP中,完成稀疏重建需要30(特征提取与匹配)+80(SfM)=110分钟,内存不成问题;进入密集重建流程后,undistortion(去畸变)的性能瓶颈在于硬盘读写速度;stereo(生成深度图和法向量图)也比较耗时,但对内存要求不高。
2025-04-23 11:50:23
510
原创 解决开启代理时无法正常使用Microsoft Store, OneDrive, Outlook等应用的问题
开启代理后,应用的流量都应发送到,然后由代理服务器处理这些流量,完成网络访问。然而,Microsoft Store、OneDrive、Outlook等Windows UWP应用基于运行,天生具有网络隔离(无法将流量发送到代理端口),因此在开启代理时无法正常上网。因此解决方法自然就是——解除网络隔离(启用Loopback功能)。
2025-04-22 16:25:02
844
原创 ChatGPT的科研用Prompt收集
请你修改下面这段文字:”在使用ChatGPT的过程中,有时候我们并不希望AI对文本进行大幅修改,这时候可以要求它对润色的程度和方向进行限制,以下是一些可以有助于控制润色程度的口令,请大家尝试加入自己的提示词中。更精确的措辞(More precise):选择更精确的词汇,例如使用“generate”代替“produce”或“analyze”代替“look at”。“润色并重写上面的内容,使其更加符合论文的风格,于此同时,又能更加专业化,如果有不符合事实或者逻辑的部分,请你参考XXX原理部分对上面的内容修改。
2025-04-22 16:24:18
780
原创 Windows命令行粘贴中文连字符—时自动变为英文短划线-
尽管中文连字符在大多数场景中都不适用,但难免在某些文件命名时用户无意使用了。的字符串后,粘贴到cmd,会自动将中文破折号转换成英文短划线。复制第二行并粘贴到任意命令行,则不会出现上面的问题。一般在打出破折号时会用到。按住shift键再按。,转而粘贴到命令行,导致数据处理分析出错。以下两行字符串分别包含中文连字符。,或从别处复制的字符串中含有。复制了第一行含有中文破折号。即可得到两个中文连字符。
2025-03-08 11:54:10
172
原创 安装segment anything(SAM)库后运行报错RuntimeError: indices should be either on cpu or on the same device as
在这段代码中,batched_nms的其他三个参数均为torch.cuda.xxx类型,而torch.zeros(len(data[“boxes”]))产生的结果是cpu数据类型。因为segment anything在PyPI中的存档是2023年的版本,比较旧。旧版的代码中存在上述报错的可能。根据报错信息可知,某数组所属设备和索引所属设备不一致,例如cuda数组用了cpu上的索引。将创建一个和传入参数所在设备一致的新数组,而前者默认是创建cpu上的数组。修改报错位置的代码,将变量放到cuda上或cpu上。
2025-02-20 11:05:26
513
原创 python执行numpy代码报错:AttributeError: module ‘numpy‘ has no attribute ‘int‘.
自1.20.0版本开始,numpy的np.int等类型不再有效,当代码中使用该类型便会报错。将代码中的全部改为即可。将numpy降级为1.19版本:参考numpy官方文档关于弃用数据类型的说明
2025-02-19 17:10:48
738
原创 Exception: Python bindings of GDAL x.x.x require at least libgdal x.x.x, but y.y.y was found
若系统中的libgdal版本太低,而你又需要用到新版本的功能,则可升级系统中的libgdal后用pip安装对应版本gdal。语句运行时会检查系统中的libgdal库版本。若系统的gdal版本低于要安装的gdal版本时便会产生标题错误。下载.whl后安装gdal可以绕开对系统libgdal-dev的依赖。例如,下载的.whl文件名为。图中,标记1的红框内是gdal版本号;提供了gdal各版本的wheels文件下载,如图所示。Linux系统中使用python安装的gdal库依赖。
2025-02-18 17:09:08
601
原创 解决在VS2019/2022中编译c++项目报错fatal error C1189: #error : “No Target Architecture“
在项目属性中添加宏定义,对应你的电脑cpu架构。目前大家使用的Windows系统中最流行的是AMD64位架构,也就是_AMD64_,添加该定义即可。
2025-01-06 17:29:11
1119
原创 辨析表达式++*p和*p++:自增自减++/--运算符与取值运算符*的优先级问题
学习C语言时,老师一般都会向同学们讲到++/–自增、减运算符。回过头来我们要问,为什么设计了这样的运算符?答案是——(由于很多地方如循环都会用到自增、减操作)为了简洁。然而,某些动机不明的考题也就围绕着++和–展开了。
2025-01-01 18:09:49
360
原创 编译libtorch时报错:NvToolsExt Could not open input file ***nvToolsExt64_1.lib
libtorch库是pytorch库的C++版本。有时为了提升程序性能、减少python调用,用户希望在自己的C++程序中使用libtorch,因而产生了自行编译libtorch的需求。在Windows平台上编译CUDA12支持的libtorch时,很可能会产生如下报错信息:下面分析报错原因,并给出解决方法。
2024-12-23 11:29:42
1185
原创 编译libtorch/pytorch相关error LNK2001: 无法解析的外部符号 “public: long * __cdecl at::TensorBase::data_ptr<long>
报错信息:error LNK2001: 无法解析的外部符号 "public: long * __cdecl at::TensorBase::data_ptr(void)const。
2024-12-23 10:14:46
438
原创 使用vcpkg安装opencv>=4.9后#include<opencv2/opencv.hpp>#include<opencv2/core.hpp>无效
至少从2024年开始,发布的vcpkg默认安装的opencv版本都是4.x版。特别是4.9和4.10版本,编译、安装后的opencv头文件目录不再是,而是。
2024-12-21 22:05:18
976
1
原创 libtorch(C++)编译错误nvcc fatal:Option ‘--dependency-file‘ requires one of ‘-M‘, ‘-MM‘
使用vcpkg编译libtorch库时,总是失败。查看编译日志,定位真正的问题是一条编译指令未成功,报错"nvcc fatal: Option ‘–dependency-file’ requires one of ‘-M’, ‘-MM’, ‘-MD’ or ‘-MMD’ to be specified"。下面具体分析为何出错。
2024-12-21 18:04:10
915
原创 编译OpenCV带CUDA时报错:Error: no instance of overloaded function “cv::cudev::blockReduce” matches
编译CUDA支持的OpenCV时可能会出现编译错误:CUDA中不存在OpenCV想调用的那个实例。也就是说,当前版本OpenCV和CUDA不匹配。例如,我尝试编译CUDA12.6,便会产生上述报错。解决办法:降低CUDA版本,或使用更高版本的OpenCV。在我的例子里,使用CUDA版本11.6即可。
2024-12-21 16:31:34
637
原创 python3.12安装pip,运行命令python get-pip.py报错:ModuleNotFoundError: No module named ‘distutils‘
有多个版本,在早期的版本中会尝试引入distutils库,然而自python3.12起便不再内置distutils库(解决方法:下载新的get-pip.py,然后执行。
2024-12-21 11:32:54
525
原创 Visual Studio 2022(VS2019\VS2022)远程linux开发的“复制源代码”功能
按照默认选项,当前的项目中所包含的所有源码文件(如左侧视图所示)都将被自动复制到远程linux系统。然而,如果项目中包含了一些头文件没有添加到项目中去,则不会被复制。例如,一个测试项目中包含了main.cpp和SimpleMatrix.hpp两个源码文件,但项目中只添加了main.cpp一个文件,则默认不会复制SimpleMatrix.hpp,从而导致Linux系统中编译报错找不到该文件。
2024-12-16 16:12:51
618
原创 Visual Studio使用Debug编译程序时链接Release编译的动态库时主程序设置的环境变量无法被库检测
开发者们通常需要利用第三方完成开发,而第三方库一般使用Release版本效率最高,所以有的开发者习惯不论在VS中以Debug模式还是Release模式编译程序,均链接Release模式编译的第三方动态库。然而,某些第三方库需要获取系统环境变量来正常工作,一些开发者在主程序中设置临时环境变量,以供动态库使用。这时会产生问题:使用Debug模式编译程序,链接Release编译的动态库时,主程序设置的环境变量无法被动态库检测。
2024-12-16 15:57:20
1492
DXF文件格式参考-带文本标记的多边形
2023-10-29
Latex表格与图片排版示例
2023-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人