- 博客(22)
- 问答 (1)
- 收藏
- 关注
原创 C++中本地编码,UTF8编码与Unicode编码之间互相转换
wstring和utf8编码的string之间互相转wstring和本地编码的string之间的互相转换utf8编码的string和本地编码的string之间互相转换
2022-08-13 08:31:08
2426
原创 Debian11中,QtCreator无法调试,提示不支持python脚本
Debian11默认安装的不是gdb,而是gdb-minimal,导致gdb版本没有python脚本支持,QtCreator无法调试。
2022-01-11 16:34:26
792
原创 创建自己的systemd服务
/usr/lib/systemd/system/webserver.service[Unit]Description=A simple web serverAfter=network.target[Service]ExecStart=/home/admin/webserver 8081 /home/admin/www[Install]WantedBy=multi-user.target
2021-08-16 10:55:36
317
原创 c++跨平台中文乱码问题解决方案
C++新标准中,提供了类似u8"中文"这种方式标记一个字符串是utf8字符串,避免编译器无法正确识别编码造成的乱码。然而测试结果在gcc下,如果源代码文件的编码不是utf8,那么哪怕用了u8"中文"也是会导致乱码的,然而如果使用utf8编码,msvc编译器又会提示各种错误导致编译失败……目前的结论是,想要跨平台的使用相同的代码,请使用UTF-8 with BOM编码,并用u8"中文"形式标记中文。测试结果gcc和msvc都可以正确识别,不会造成乱码问题。...
2021-07-20 14:59:08
886
原创 用CMake管理自己的程序(四)
前言用CMake管理自己的程序(一)用CMake管理自己的程序(二)用CMake管理自己的程序(三)通过之前的文章,我们已经可以做到最基本的工程管理了,这篇文章,我们将对之前的工作做一个完善,让我们对程序的管理更加的合理,高效。target开头的命令相信大家都注意到了,cmake是一个命令式的工具,其中,我们会发现一些功能相似的命令。例如之前我们为了能够找到库的头文件,使用了include_directories命令,而现在我要介绍一个target开头的命令:target_include_di
2021-07-07 14:32:14
1640
原创 用CMake管理自己的程序(三)
前言用CMake管理自己的程序(一)用CMake管理自己的程序(二)之前的文章中,我们简单的介绍了一下一个正常的可执行程序以及一个正常的库要如何生成与管理,以及介绍了在一个正常的程序中要如何处理第三方库的引用问题,以及通过编译器的标志解决了一个中文乱码问题,接下来,我们就要遇到了一个最为关键的问题了:我们到底要如何管理自己的程序。管理工程树大部分的现代C++程序员,都是使用IDE进行软件开发的。在IDE中,源代码都是由一个叫做“工程文件”的文件(或者叫其他的名字,但是其核心概念都是一致的),通过
2021-07-05 14:59:08
1622
原创 用CMake管理自己的程序(二)
前言上一篇文章用CMake管理自己的程序(一)中,我们简单的了解了一下要如何编写一个CMakeLists.txt文件。主要是介绍了一个Qt程序如何使用CMake进行管理。但是我们只说明了一个可执行程序怎么搞,接下来,就让我们继续,说一下库文件怎么办。一个库程序这是使用QtCreator新建一个库项目后自动生成的CMakeList.txt文件,相比可执行程序可谓是简单明了许多。这里我们可以忽略掉那连续两个find_package命令,因为无论你写多少个,最终的结果是不会发生变化的,这里写两个应该只是为
2021-07-03 10:23:06
2365
原创 用CMake管理自己的程序(一)
前言CMake是一个非常常用的构建管理软件,本质上它并不负责程序的构建,但是会为程序构建提供足够多的信息,以便生成一个当前平台支持的make文件或工程文件。CMake的使用可以分为两大部分:程序构建与程序管理程序构建是指如何通过CMake生成一个平台支持的make文件或工程文件,CMake还自带一个GUI程序帮忙做这件事,比较简单就不多说了。程序管理是指如何用CMake去组织一个程序中的各个文件,将其当作工程文件的过程,主要就是搞明白CMakeList.txt这个文件要如何编写。这篇文章主要针对的是程
2021-07-03 09:12:11
4836
原创 在VS2019中使用git时如何设置ssh连接所需要的key
首先,无论时git-hub,git-lab乃至gitee,我们在pull和push的时候都是需要验证的,要么是https的账号密码验证,要么就是通过ssh的key验证,账号密码很容易理解,会自动的弹出一个窗口我们就可以输入账号密码了。可是只要用过vs2019的朋友们都会发现,在vs2019中根本就不存在为仓库配置ssh的key的方法,直接使用git@xxxx开头的连接去push或pull都是失败的。这是因为vs2019使用了最原始的git的验证方法,就是将key放在一个固定的目录下,由git程序自行读取的
2021-05-27 17:08:59
3785
原创 如何使用Qt自带的zlib库进行gzip格式的数据压缩与解压缩
如何使用Qt自带的zlib库进行gzip格式的数据压缩与解压缩从https://github.com/d7185540/QtZlibDemo这里拿到了一个实现, 但是为了测试压缩或解压缩时选用的缓冲区大小是否有影响进行了最简单的修改, 也就是加了个静态变量BufferSize减小缓冲区, 事实证明, 缓冲区哪怕只有40的大小也是可以压缩与解压缩的.由于之前找到了一个错误的例子, 导致解压缩时总是失败(因为没有正确处理缓冲区过小的问题), 这里找到了正确的例子, 故简化后在此记录.#include &l
2021-04-23 16:42:48
3269
1
原创 使用OpenSSL1.1.1中的libcrypto库进行RSA加密与解密数据
废话不多说, 直接说怎么写代码编译的时候如何包含库文件这种事情就不说了.第一步, 包含头文件.#include <openssl/rsa.h> // 既然是RSA加密该头文件肯定是需要的#include <openssl/bn.h> // 这个头文件用于RSA的公钥私钥生成中, 生成大数用的#include <openssl/pem.h> // 这个是用于将公钥私钥保存成pem文件用的// 其它所需的头文件会被上述三个头文件自动包含, 比如bio.h第二
2020-11-05 15:21:33
3138
3
原创 C++20中的协程(Coroutine)
目录C++20中的协程(Coroutine)那么,什么是协程?那么这么好用的协程,是不是只要C++20一推出,我们加上一个关键字就能直接把异步调用转化为同步调用呢?协程函数和Awaitable类那么,到底要如何使用协程呢?写在最后C++20中的协程(Coroutine)从2017年开始, 协程(Coroutine)的概念就开始被建议加入C++20的标准中了,并已经开始有人对C++20协程的提案进行了介绍。1事实上,协程的概念在很早就出现了,甚至其他语言(JS,Python,C#等)早就已经支持了协程。
2020-09-16 17:27:19
14329
5
空空如也
遇到了"无法解析的外部符号 _mainCRTStartup", 但是第二次编译就好了
2019-12-17
TA创建的收藏夹 TA关注的收藏夹
TA关注的人