- 博客(333)
- 资源 (3)
- 收藏
- 关注
原创 git教程
写教程是对自己知识的一种总结,总结出来跟大家分享。在当前目录创建一个空的git仓库。git initgit提交修改需要两步,下面是把xxx的修改提交到仓库:git add xxxgit commit -m "注释"下面说说后悔了怎么办。如果你修改了文件,还没有add,可以用下面命令回退到修改前状态:git checkout -- ...如果你已经add了
2015-02-07 14:23:42 1175
原创 点乘与叉乘
又叫向量的内积、数量积,是一个向量和它在另一个向量上的投影的长度的乘积;结果是一个和已有两个向量都垂直的向量。该向量的模长是两个向量做边的平行四边形的面积。可以用来判断两个向量是否垂直,垂直则点积为0。矢积/外积/向量积/叉积。标积/内积/数量积/点积。
2024-04-10 00:46:09 186
原创 hdf5文件node name长度可以支持多长?
根据HDF5库的规范,节点名称是一个UTF-8编码的字符串,没有固定的长度限制。这意味着你可以使用非常长的字符串作为节点名称,但请注意,过长的节点名称可能会导致一些实施上的限制或不便。因此,根据你的具体需求,你可以权衡节点名称的长度和对存储空间和性能的影响。请注意,虽然理论上节点名称的最大长度是128个字符,但在实际应用中,可能还需要考虑其他因素,例如文件系统的限制或操作系统的限制。手机上文心一言说是255,网页上是接着上面问的,回答是“HDF5节点名称的最大长度是。节点名称的最大长度是128个字符。
2024-02-04 17:28:50 170
原创 ifstream::tellg() 返回-469
使用过程中发现,tellg()返回的位置,有时有效,有时无效,第一次是返回0,后面文件有输入后,再次读取前,调用tellg(),有时返回-469,有时返回正的位置。一个程序输出一个文件,另一个程序打开这个文件,读入内容。读入过程中,需要记录读取位置,使用tellg()获取读取位置, 以便后面用seekg重新定位读取。经过多次摸索,结合网上搜索,发现windows下,ifstream只有用二进制模式打开文件,tellg才能返回正确的位置。
2024-02-01 01:50:12 258
原创 signtool.exe在哪里?
今天编译代码用到signtool签名,signtool.exe不在path环境变量里,看网上说安装Windows SDK 就会安装signtools,安装了Windows SDK,还是没有找到。这个bin目录下有多个sdk版本,每个版本都有x86和x64,里面都有signtool.exe, 都可以用。以后找sdk的东西,要到Windows Kits目录里找。
2023-12-20 19:42:08 438
原创 Windows编译动态库没有生成.lib文件问题
最近修改了一个项目,以前生成静态库,后改为生成动态库,在Linux上没有问题,但在Windows上只生成了.dll文件,没有生成.lib文件。后来找到原因,代码里没有dllexport声明,没有东西导出,所以才没有生成.lib文件。文件除了可以用作静态链接库外,还有另一种用途,就是用作动态链接库(这样就跟Linux一样,类和函数全导出了。在Windows中,
2023-12-12 13:40:45 591
原创 CentOS7安装最新版本git
make时,doc和info是没有make成功的,因为前面有软件没装。但不影响git编译使用。CentOS7上的git是1.8.3.1,比较老,使用体验不好。下载源码来升级一下。安装后,git变为2.43.0,显示log更好看了。因为CentOS7.9很老了,有很多软件找不到。第四行,docbook没有安装,找不到这个的。第二行docbook2X没有找到。第三行getopt没有找到。
2023-12-05 16:23:20 466
原创 CentOS配置本地源
把上面的"mount -t iso9660 -o loop /mnt/iso/CentOS-7-x86_64-Everything-2009.iso /mnt/cdrom/"添加到最后。2.把相应版本的Everything的iso复制到机器上。然后copy到刚才iso目录。centos7的Everything有10G多,这个复制很费时间。然后可以安装大多数软件了,没有的软件可以在安装编译环境后,下载源码编译。
2023-11-29 18:27:23 468
原创 Ubuntu定时执行任务
运行后,会发现,打开的是一个新的文件,前面普通用户权限写的任务不在这个文件。上面的几个都是不需要root权限的,如果运行的任务需要root权限怎么办?如果显示“no crontab for xxx” 说明没有启动cron。cron一个Linux定时执行工具,可以定时执行一些任务。然后就跟上面一样,添加需要root权限的任务。示例:每天8点,执行test.sh.示例:每5分钟,写一下log.示例:每天2点重启机器.这样就启动cron了。
2023-10-31 19:58:54 897
原创 system在client端运行正常,在server端运行失败问题
在windows上,不切换盘符,cd是不能到达对应目录的。server端运行的环境不同,默认在c盘,client端运行时,正好在d盘。使用system(command.c_str()), 同样的command,在client端运行正常,在server端运行却失败。
2023-08-17 14:54:36 96
原创 VMware虚拟机设置共享文件夹丢失问题
最近在用VMware,装了几个虚拟机后,发现第一次设置好共享文件夹,是可以用的,虚拟机里/mnt/hgfs/目录下有共享文件夹挂载。关闭虚拟机,再打开,就没有了,虚拟机设置里还有共享文件夹 的设置,删除了,再设置也没有用。CentOS,Ubuntu,麒麟等操作系统都试过,都有这个问题。我用的VMware是官网下的免费版,不知道付费版本是不是这个问题。在网上搜,发现应该是VMware Tools不能自动挂载共享文件夹问题。以后每次开机都能加载了。
2023-08-01 21:53:18 725 1
原创 Linux下打包deb
先处理依赖,因为一个可执行文件依赖很多动态库,动态库又依赖很多动态库,所以只拷贝可执行文件不行,需要把这一系列依赖文件都找到,并且可执行文件和动态库运行时找其他文件的路径编译完一般是绝对路径,需要改为相对路径才能在改变位置后也能用。3.建立一个空目录,起名Project,作为工作目录,在工作目录里再建一个目录,起名ABC,这个第二级的目录才是我们linuxdeployqt用的目录,复制可执行文件到这个目录里。6.使用显式加载的动态库,先不要copy过来,因为依赖分析也会分析这些库,没有必要。
2023-07-19 11:18:36 906 2
原创 specialization of xxx after instantiation
这个有时跟编译选项有关,release编译有这个问题,debug没有。编译出现这个错误,原因是特化模板放到模板调用后面了。
2023-07-14 16:11:42 360
原创 shell脚本里相对路径转绝对路径
一个shell脚本A,要调用另一个脚本B,参数需要绝对路径,因为调用的脚本里有目录进出操作。但如果脚本A里,调用时写成绝对路径,父目录变化时,就需要手工修改脚本。通过上面的操作,就得到一个相对当前路径的绝对路径。
2023-07-11 20:16:06 852
原创 Ubuntu下编译VTK
到VTK源码的build目录(这个是第5步自己建的目录),打开终端,输入make,就可以编译了。5.打开cmake-gui,设置源码路径,编译输出路径,在源码里建一个build目录,用于存放输出。9.有红色不要紧,毕竟这些Qt目录都找到了,再次点击Configure,这次没有红色了。编译会有点小错误,是某个Qt头文件没有包含,大概两三个文件需要修改,改了就可以编译过了。6.选择QT,Rendering,StandAlone,点击Configure。1.先安装QT,不知道不装行不行,我们项目需要。
2023-06-30 00:44:44 944 1
原创 libiconv库转换字符串出现BOM问题
使用iconv转换字符编码,经常出现转出的字符串带BOM头的问题。经过测试,发现unicode编码用“utf-32”或“utf-16”,转出或转入,得到的字符串有BOM,而用“utf-32le”、“utf-32be”、“utf-16le”、“utf-16be”这样的,就不会有BOM。所以需要明确告知iconv,编码的endian,否则转出来的字符串带BOM.
2023-06-29 23:17:30 136
原创 cmake在linux上实现PRE_BUILD功能
同一个cmake文件,在VS上是可以实现PRE_BUILD功能的,在linux上编译则没有执行到,不起作用。修改CMakeLists.txt后,下面的实现,可以linux编译时也能执行到。原理就是通过两次string替换,把文件名里的分隔符替换成下划线,用文件名做custom target,然后添加dependencies,这个temp_target就会执行到了。之所以用文件名做custom target,是因为这段在一个function里,会多次调用,不能用固定的target名字。
2023-06-27 23:57:46 257
原创 麒麟系统鼠标滚轮不能实现页面滚动
刚用麒麟V10,发现有滚动条的页面,滚动鼠标滚轮不能控制页面滚动。修改“设置”-“设备”-“鼠标”-“滚轮速度”,设置个合适的速度,就可以了。不过这个速度设置很难用,最低几乎不动,滚几下,才动。动一下也不是一行,而是多行,可能是没有适配各种分辨率屏幕。
2023-06-27 09:10:15 1246
原创 Visual Studio 设置函数断点
调试c++程序,有第三方库,只有头文件,没有源代码,怎么在调用库函数时打断点?在每个调用地方打断点比较麻烦。还有一个是加个接口层,在接口层上打断点,代码比较久了,有很多调用,修改量很大。用Visual Studio可以打函数断点,“调试”-“新建断点”-“函数断点”。因为微软的网站上是错误的,所以写下来,记录一下。就是只能有参数类型,不能有变量名。
2023-06-06 11:20:29 550
原创 删除远程已经删除的分支
git服务器上合并代码后,远程的分支一般删除了,这时候本地的分支需要自己删除,有时候分支用的多,会攒一大堆这样的本地分支。\[[^:]+:\s*gone\] 中括号,里面要有gone,否则不匹配。[^\[]+ 直到左中括号。\s* 前面可能有空白。(\w+) 分支名称。.*$ 一直到行尾。\s+ 分割空白。
2023-05-22 23:12:44 114
原创 Python处理管道数据
Python作为脚本语言,如果能像shell一样处理管道传来的数据,将很有用。下面就是个Demo。就可以处理data.txt里的一行一行的数据了。
2023-05-22 22:46:21 192
原创 智能指针,作为函数参数怎么用?
通过上面代码运行,可以发现只有fun1的指针引用在函数调用后有变化。所以智能指针作为函数参数的正确用法,就是传值使用。用智能指针的引用、指针都是不对,无法实现智能指针的引用计数效果。智能指针作为C++很重要的东西,被广泛使用。当智能指针被作为函数参数使用时,应该怎样使用呢?
2023-04-09 23:14:01 681
原创 DLL相关问题
后来我在dll里导出一个返回函数指针的函数,这个函数指针指向一个返回智能指针的函数,我先get第一个函数,执行得到返回智能指针的函数,执行得到返回的dll里的智能指针。反过来,从dll里返回一个该类的对象指针,在exe里执行该类的成员函数,会执行exe里类的成员函数,成员变量是从dll里传入的。在exe里把该类的一个对象的指针,传给一个dll里导入的函数,在该函数里,调用该类的成员函数会有什么结果?一开始我在dll里导出一个返回智能指针的指针的函数,执行后,这个从dll里返回的智能指针就析构了。
2023-03-16 17:04:54 442 3
原创 VS中C++程序报错:应输入声明
一个头文件,从别的项目copy过来的,某个地方有个红线,提示“应输入声明”,代码很简单,没看出什么问题,就随便输入点东西,再删除,错误消失了。原因不明,不过这个头文件肯定没有问题。
2023-03-07 21:21:45 3992 1
原创 有选择地打印log
先运行,需要打印log时,在if(debug)这里加断点,中断后,修改debug为true,就打印出来需要的log了,可以多次打印,后打印的会添加到文件后面。
2023-01-31 17:59:34 101
”SM总线控制器“和”其他PCI桥设备“驱动打包
2014-10-09
VisualSVN Server 用网页修改用户密码
2014-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人