- 博客(354)
- 资源 (3)
- 收藏
- 关注

原创 git教程
写教程是对自己知识的一种总结,总结出来跟大家分享。在当前目录创建一个空的git仓库。git initgit提交修改需要两步,下面是把xxx的修改提交到仓库:git add xxxgit commit -m "注释"下面说说后悔了怎么办。如果你修改了文件,还没有add,可以用下面命令回退到修改前状态:git checkout -- ...如果你已经add了
2015-02-07 14:23:42
1233
1
原创 麒麟操作系统VNC连接后设置分辨率
远程机器是麒麟操作系统桌面版本,通过VNC登录后,分辨率只有800x600,运行一些有图形界面程序显示不全,拖来拖去,很麻烦。但是也没有找到办法设置vino-serv,没有找到相关配置文件,网上说的都试过了,没有效果。后来找了一个替代方法,写了一个脚本,登录vnc后,执行脚本,就可以修改分辨率了。其实麒麟是Ubuntu系的,ubuntu默认支持vnc,vino-serv。以为是安装的TightVNC不行,换了TigerVNC,还是不行。显示所有端口占用的程序,可以找到vino-serv。
2025-01-18 01:08:16
330
原创 undefined reference to `glutInit‘
链接出错,提示一堆“undefined reference to”,但实际所有库都有。原因:gcc后面参数顺序很重要, -l 不能放到 -o前面。
2025-01-10 16:42:32
202
原创 Linux图形界面和tty控制台之间切换
Linux图形系统桌面当然方便,但有时候出现问题,无法登录等,还是需要用tty控制台登录。如果有安装图形系统,tty里也可以调用图形程序,xclock是时钟,xcalc是计算器。Ctrl+Alt+F1或F2 切换到tty控制台登录。Ctrl+Alt+F7或F8 切换到图形桌面登录。tty控制台,也可以打开图形界面的,命令是startx。
2024-12-05 22:47:01
316
原创 麒麟操作系统没有“打开终端”菜单
一台麒麟V10的机器,被搞坏了,桌面菜单栏没有菜单,桌面空白地方右键也没有“打开终端”,桌面上也没有终端,“Ctrl+Alt+T”也打不开终端。但有个创建快捷方式的菜单,创建一个快捷方式,指向/bin/x-terminal-emulator, 点击这个快捷方式,就可以打开终端了。
2024-12-05 22:38:08
1354
原创 C支持,而C++不支持的非平凡的指定初始化。
编译提示:non-trivial designated initializers not supported。用下标指定初始化,在C里是支持的,C++不支持。在vc和gcc/g++上验证通过。翻译:不支持非平凡的指定初始化器。改为c程序,用gcc编译通过。
2024-12-05 22:29:11
243
原创 Windows远程桌面连接到Linux
但黑屏时,我有一次在Linux上新开了一个终端,竟然显示到Windows的远程桌面上,似乎是两个屏幕的感觉,后面没有试出过这个情况,Windows端一直是黑的。我的电脑是一台瘦客户端,公司设置的不能安装其他软件,里面只有几个软件,还好有一个远程桌面(Remote Desktop Connection),我想连接到另一台Linux的电脑上。然后从Windows的远程桌面连接,输入IP地址(在局域网里),用户名,密码,就可以访问Linux机器了。一开始遇到个问题,连接后,黑屏,没有任何东西显示。
2024-12-03 20:10:13
782
原创 rpm包转deb包或deb包转rpm包
Debian系(Ubuntu、Deepin、麒麟Destop等)用的安装包是deb的,Red Hat系(CentOS、欧拉、麒麟Server等)用的安装包是rpm的。如果rpm包跟本地系统架构不一样,例如本地64位(AMD64)rpm包是32位(x86),或本地x86机器,rpm是arm指令集的。如果需要在Ubuntu上安装rpm,或需要在CentOS上安装deb,需要安装alien。会得到一个xxx.tgz(不一定是xxx,可能是别的)。可以先转为tgz,再转为deb。
2024-12-03 15:54:14
1020
原创 从QModelIndex得到一个QStandardItem*
因为这两个表格有关联,比如A3和A5关联,A5值时A3两倍,我希望我修改A3时,A5的值,也改为A3的两倍。修改A5时,A3也同样改为A5的1/2.但用这个index,通过model->itemFromIndex(index),得到的item是nullptr。界面上是一个电子表格,点击其中一个表格时,我希望根据这个表格的修改,同时更新另一个表格内容。在QLineEdit的textChanged消息里,这样就拿到正确的item了。
2024-10-24 15:49:55
210
1
原创 C++ socket编程(3)
介绍了一个简单socket通讯Demo, 客户端和服务器进行简单的交互。两个代码都很简单,如果情况一复杂,就会出错。这节我们把代码完善一下,实现一个客户端输入,发送,服务器echo的交互。本文介绍客户端代码修改。这里等1分钟,如果服务器还是没起来,就退出了。客户端其他函数修改同服务器端,可以看。
2024-10-11 01:20:02
397
1
原创 C++ socket编程(2)
这节我们把代码完善一下,实现一个客户端输入,发送,服务器echo的交互。listen如果出错,返回-1,第二个参数是backlog,可排队个数,客户端connect,可以放到这个队列里,等待服务器accept。socket如果出错,Linux返回-1,Windows的SOCKET是unsigned,返回INVALID_SOCKET(~0).bind如果出错,返回SOCKET_ERROR(-1). 通常是端口占用,权限,地址错误等问题。前面代码很多函数都有返回值,我们都没有检查,完善代码,添加检查。
2024-10-11 00:44:32
465
原创 C++ socket编程(1)
然后客户端会与服务器进行10次交互,一个交互为:客户端发一个消息,服务器收到,原样返回给客户端,客户端收到,再发下一个消息。这里是一个socket编程Demo,不考虑出错情况,代码简单,便于了解socket流程。Demo分为服务器程序和客户端程序,运行需要先启动服务器程序,再启动客户端程序。主要交互在while里, 客户端这边是(发,收),服务器这边是(收, 发)。服务器会等待连接,客户端连接后,服务发送"connected."给客户端。10次交互完成,关闭链接,两边程序都结束。
2024-10-10 16:43:48
514
原创 Windows下多字节字符转宽字符
这个代码页都是指多字节字符串的代码页,MultiByteToWideChar的源字符串和WideCharToMultiByte的目标字符串的代码页。MultiByteToWideChar调用两遍,第一次调用,buff用的NULL,目的是计算转换后字符个数,便于申请内存。1. 调用A结尾的API, 使用多字节字符集函数处理后,转为Unicode字符串。2.调用W结尾的API,使用宽字符集函数处理后,就是Unicode字符串。说了一个奇怪的情况, API用的宽字符版本,代码却是使用多字节字符集。
2024-10-06 23:54:13
451
原创 UNICODE已定义,_tcs*函数却不是宽字符函数问题
一个比较大的项目,CMake里定义了UNICODE,调用Windows的API也是用W的版本。所以如果在CMake文件里定义UNICODE,在Windows下会出现这种矛盾,使用的是宽字符API,tchar函数却是多字节版本。所以CMake文件里,如果需要区分Unicode字符集或多字节字符集,只需要添加或不添加_UNICODE定义即可。可以看到定义了_UNICODE,UNICODE会自动定义,_MBCS自动去掉定义。从前面看,只定义UNICODE,会产生奇怪的情况,代码用的字符集是多字节字符集。
2024-10-06 23:16:37
263
原创 rpmbuild spec文件如何排除一些文件
spec文件在使用中还发现一个问题,#并不能注释掉%开头的行,不需要的%开头的东西,直接删掉,否则用#注释掉,还会有各种问题。因为exclude应该跟defattr一样是files下的一个命令,上面那样是没有用的。用rpmbuild打包时,有些文件是不需要打包到rpm包里的,这时需要修改spec文件。
2024-08-28 15:01:07
339
原创 vscode附着调试
这个要加在初始化代码后面,不要影响初始化。会sleep 20秒,附着上后,暂停,修改loop大于20,就退出循环了,往后走了。调试时,选(gdb) Attach,等要调试的进程启动了,按F5,会跳出选择进程的窗口,选择要附加的进程, 附加后,就可以调试了,以前设置的断点,也会被捕捉中断。有时候,我们要调试的是在进程启动时的代码,等我们附着上后,设置的断点已经运行过去了。这时候可以在进程启动的地方,加延时,方便附着。我有一个程序,是别的程序调用启动的,所以需要等它的进程启动后,再附着上去调试。
2024-08-25 10:40:08
658
原创 vscode运行已编译好的程序
假设我有一个项目,已经编译好了,需要调试,用gdb命令行调试不熟悉,还是用vscode来调试比较好。关键点:"preLaunchTask": "",这个是空的,就不会去编译了,直接运行。这个.env会设置环境变量。
2024-08-25 10:12:54
371
原创 生成带Debug信息的Release版本
有时候,我们在Debug版本运行正常的程序,在Release版本下运行却有问题。我们需要生成带Debug信息的Release版本,用于调试跟踪。Release版本添加Debug信息。这样生成的Release版本就可以调试跟踪了。
2024-08-25 09:09:17
315
原创 Makefile:87: *** 多个目标匹配。 停止。
我是在Linux上编译,后来发现,这个目录在windows下编译过,下面目录里都有Makefile,Makefile.Debug,Makefile.Release等文件。qmake生成的Makefile完全没有问题。根据网上搜索结果,1.回车问题。2.空格、TAB问题。删除了这些文件后,再qmake,make,就通了。make时出现上面的多个目标匹配问题。
2024-08-15 20:38:24
294
原创 scp命令的使用
scp命令是secure copy的缩写,用于在Linux下进行远程文件拷贝,windows一般也有该命令。在Windows和Linux之间传文件,最简单的是共享目录,如果不能使用共享目录,可以使用scp命令, 一般Windows和Linux都支持。这个是把当前目录的123.txt文件,copy到192.168.0.100机器的/home/user/目录下。会让你输入user的密码。这个是把刚才那个文件从100的机器再copy下来,放到d:\xxx\目录下。也需要输入user的密码。上面是从cmd执行的。
2024-08-08 14:37:32
1518
原创 点乘与叉乘
又叫向量的内积、数量积,是一个向量和它在另一个向量上的投影的长度的乘积;结果是一个和已有两个向量都垂直的向量。该向量的模长是两个向量做边的平行四边形的面积。可以用来判断两个向量是否垂直,垂直则点积为0。矢积/外积/向量积/叉积。标积/内积/数量积/点积。
2024-04-10 00:46:09
375
原创 hdf5文件node name长度可以支持多长?
根据HDF5库的规范,节点名称是一个UTF-8编码的字符串,没有固定的长度限制。这意味着你可以使用非常长的字符串作为节点名称,但请注意,过长的节点名称可能会导致一些实施上的限制或不便。因此,根据你的具体需求,你可以权衡节点名称的长度和对存储空间和性能的影响。请注意,虽然理论上节点名称的最大长度是128个字符,但在实际应用中,可能还需要考虑其他因素,例如文件系统的限制或操作系统的限制。手机上文心一言说是255,网页上是接着上面问的,回答是“HDF5节点名称的最大长度是。节点名称的最大长度是128个字符。
2024-02-04 17:28:50
249
原创 ifstream::tellg() 返回-469
使用过程中发现,tellg()返回的位置,有时有效,有时无效,第一次是返回0,后面文件有输入后,再次读取前,调用tellg(),有时返回-469,有时返回正的位置。一个程序输出一个文件,另一个程序打开这个文件,读入内容。读入过程中,需要记录读取位置,使用tellg()获取读取位置, 以便后面用seekg重新定位读取。经过多次摸索,结合网上搜索,发现windows下,ifstream只有用二进制模式打开文件,tellg才能返回正确的位置。
2024-02-01 01:50:12
476
1
原创 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
1207
原创 Qt的信号和槽
function1会在moc_xxx.cpp里生成。连接,一般在B类里,或任何能执行到的地方。假设A是发信号的类,B是收信号的类。
2023-12-12 14:01:30
102
原创 Windows编译动态库没有生成.lib文件问题
最近修改了一个项目,以前生成静态库,后改为生成动态库,在Linux上没有问题,但在Windows上只生成了.dll文件,没有生成.lib文件。后来找到原因,代码里没有dllexport声明,没有东西导出,所以才没有生成.lib文件。文件除了可以用作静态链接库外,还有另一种用途,就是用作动态链接库(这样就跟Linux一样,类和函数全导出了。在Windows中,
2023-12-12 13:40:45
1909
原创 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
660
原创 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
636
原创 Ubuntu定时执行任务
运行后,会发现,打开的是一个新的文件,前面普通用户权限写的任务不在这个文件。上面的几个都是不需要root权限的,如果运行的任务需要root权限怎么办?如果显示“no crontab for xxx” 说明没有启动cron。cron一个Linux定时执行工具,可以定时执行一些任务。然后就跟上面一样,添加需要root权限的任务。示例:每天8点,执行test.sh.示例:每5分钟,写一下log.示例:每天2点重启机器.这样就启动cron了。
2023-10-31 19:58:54
2382
原创 system在client端运行正常,在server端运行失败问题
在windows上,不切换盘符,cd是不能到达对应目录的。server端运行的环境不同,默认在c盘,client端运行时,正好在d盘。使用system(command.c_str()), 同样的command,在client端运行正常,在server端运行却失败。
2023-08-17 14:54:36
139
原创 VMware虚拟机设置共享文件夹丢失问题
最近在用VMware,装了几个虚拟机后,发现第一次设置好共享文件夹,是可以用的,虚拟机里/mnt/hgfs/目录下有共享文件夹挂载。关闭虚拟机,再打开,就没有了,虚拟机设置里还有共享文件夹 的设置,删除了,再设置也没有用。CentOS,Ubuntu,麒麟等操作系统都试过,都有这个问题。我用的VMware是官网下的免费版,不知道付费版本是不是这个问题。在网上搜,发现应该是VMware Tools不能自动挂载共享文件夹问题。以后每次开机都能加载了。
2023-08-01 21:53:18
1290
1
原创 Linux下打包deb
先处理依赖,因为一个可执行文件依赖很多动态库,动态库又依赖很多动态库,所以只拷贝可执行文件不行,需要把这一系列依赖文件都找到,并且可执行文件和动态库运行时找其他文件的路径编译完一般是绝对路径,需要改为相对路径才能在改变位置后也能用。3.建立一个空目录,起名Project,作为工作目录,在工作目录里再建一个目录,起名ABC,这个第二级的目录才是我们linuxdeployqt用的目录,复制可执行文件到这个目录里。6.使用显式加载的动态库,先不要copy过来,因为依赖分析也会分析这些库,没有必要。
2023-07-19 11:18:36
1234
2
原创 specialization of xxx after instantiation
这个有时跟编译选项有关,release编译有这个问题,debug没有。编译出现这个错误,原因是特化模板放到模板调用后面了。
2023-07-14 16:11:42
790
原创 shell脚本里相对路径转绝对路径
一个shell脚本A,要调用另一个脚本B,参数需要绝对路径,因为调用的脚本里有目录进出操作。但如果脚本A里,调用时写成绝对路径,父目录变化时,就需要手工修改脚本。通过上面的操作,就得到一个相对当前路径的绝对路径。
2023-07-11 20:16:06
1393
原创 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
1574
1
”SM总线控制器“和”其他PCI桥设备“驱动打包
2014-10-09
VisualSVN Server 用网页修改用户密码
2014-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人