- 博客(147)
- 资源 (23)
- 收藏
- 关注
原创 cmake之命令行转换vs工程
DTEST_ENABLE=1 便是TEST_ENABLE开关打开,在CMakeLists中用option制定的选项。上面的命令表示 转换成 vs2019 目标工程文件放在 根目录下的 build_x64 目录。更多用法 可以 cmake /help 自己去探索。在根目录下进入cmd 命令行 执行如下命令。
2023-03-24 09:19:06
9
原创 cmake常用脚本语句命令
aux_source_directory(./include DIR_HEADS) #aux_source_directory 命令只是用来查找源文件,对头文件无效。#aux_source_directory(./include DIR_HEADS) #aux_source_directory 命令只是用来查找源文件,对头文件无效。# 这个对应VS工程属性中C/C++西面的附加包含目录 注意不是VC++中的包含目录。# 这个对应VS工程属性中C/C++西面的附加包含目录 注意不是VC++中的包含目录。
2023-03-24 09:16:16
88
转载 [C++]如何判断exe和dll文件是debug还是release编译生成的
debug模式的dll和exe,VCRUNTIME.DLL文件名后面多一个字母D;release模式下则没有D。的dll和exe,图标右边都有一个“64”字样的小图标;x86架构的图标右边是空白。
2023-03-22 22:03:03
27
原创 zlib和curl的windows vs工程编译方法
点击左下角的configure可以配置 目标工程师vs2019还是其他的vs工程(比如vs2019,vs2017等等)一个是curl源码的根目录(里面有CMakeLists.txt文件),一个是存放转换后vs2019工程的目录。根目录下面会有一个CMakeLists.txt文件, 这个是cmake的配置文件,跨平台的构建配置文件。配置后 右下角有进度条,进度条走完后,点击左下角的generate即可转换成vs2019工程。我们使用cmake的gui版本,转换成vs2019工程。
2023-03-22 20:00:17
243
原创 HelloWorld CMake CMake中构建静态库与动态库及其使用
这里简单说明一下,FIND_PATH用来在指定路径中搜索文件名,比如:FIND_PATH (myHeader NAMES hello.h PATHS /usr/local/include /usr/local/include/hello)同样,因为这些变量直接为FIND_指令所使用,所以所有使用FIND_指令的cmake模块都会受益。cmake程序的过程",既然是"cmake语言",自然涉及到变量、语法等. 下一节,我们将抛开程序的话题,看看常用的CMAKE变量以及一些基本的控制语法规则。
2023-03-22 19:42:43
155
转载 如何查看dll以及lib文件是32位还是64位
在【键入或选择新平台(P):】处,点击下拉框,并选择 【x64】选项。选择完成后,点击【确定】按钮即可。项目名称上点击右键--> 属性 --> 界面右上角【配置管理器】在【活动解决方案平台(p):】处,点击下拉框,并点击【新建】选项。dumpbin.exe /headers 文件路径。此时,项目中就可以选择32位编译,还是64位编译了。默认新建的功能只有32位编译,还需要添加64位。可借助vs自带工具dumpbin.exe。直接输入:dumpbin.exe。可查看该命令的详情。
2023-03-21 20:13:38
10
转载 VS 编译出错之文件编码
这是文件编码格式导致的,此时,可以用 EditPlus 批量更改文件编码为 UTF-8 ( 带 BOOM)。虽然 UTF-8 文件可以通过解析,猜测得到编码方式,但是 VS 在这点上不智能,它必须依赖于 BOOM 才能识别出文件为 UTF-8。若在其它环境下新建的源码文件,格式为 UTF-8,会发现编译出错,而且错误信息非常诡异,指向不明显。版权声明:本文为CSDN博主「lizhihaoweiwei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
2023-03-21 15:34:15
4
原创 windows下编译zlib库
任何giyhub上面的工程,只要标准化了CMakelists.txt 都可以这样操作转换。download zip 下载完解压后 ,工程目录里面有CMakelists.txt.利用cmake-gui版本直接将工程转换为对应的vs版本即可。安装完成后,打开cmake-gui界面配置程序。然后打开vs工程编译即可。
2023-03-21 14:53:22
8
原创 windows下编译libcurl
第一步下载源代码,源代码有很多地方可以下载,此处从github下载下载地址:download zip解压zip文件 ,进入winbuild目录开始菜单--进入vs2019(或者其他版本)command prompt,如下在此命令行下面,进入到curl源代码的winbuild目录,执行命令参数说明如下:都可以在winbuild目录下的README.md文件中看到## Build in the console Once you are in the console, go to the winbuild dir
2023-03-21 14:46:53
100
原创 Cmake的简介和用法
cmake是一种构建工具,一种很方便的跨平台的工具。需要处理CMakeLists.txt 的文本文件,里面编写一些cmaje的脚本命令。可以通过这个工具 , 将CMakelists所在的工程转换成各种vs工程,比如说vs2013,vs2019等等。vs2019中有微软自带的Cmake,可以直接打开CMakelists.txt 文件 进行项目的阅读和编辑。安装cmake,cmkae是一种开源工具。开始进行块注释,并且在块注释的一端与。的时候支持多行注释,以。
2023-03-20 19:39:55
4
转载 【测试】什么是代码覆盖率
常见的编程语言,如Java,C++,Python,JavaScript,PHP和Go等,都有相应的代码覆盖率统计工具。代码覆盖:为了更加全面的覆盖,我们可能还需要理解被测程序的逻辑,需要考虑到每个函数的输入与输出,逻辑分支代码的执行情况,这个时候我们的测试执行情况就以代码覆盖率来衡量,可以理解为白盒覆盖。需求覆盖:指的是测试人员对需求的了解程度,根据需求的可测试性来拆分成各个子需求点,来编写相应的测试用例,最终建立一个需求和用例的映射关系,以用例的测试结果来验证需求的实现,可以理解为黑盒覆盖。
2023-03-01 18:01:06
58
转载 如何保证代码质量
关于架构设计的部分,正在阅读《重构》和《Head First 设计模式》,在这里我总结下最近看到的一些改进代码质量的方法和工具,包括:代码规范、CodeReview、重构、单元测试以及代码覆盖率、findbugs工具。其实,代码覆盖率并不是目标,它只是一种手段,帮助我们寻找项目中存在复杂业务逻辑的地方,而这里,就是可以改进的地方。本质上说,重构是在代码写好之后改进它的设计。代码能用和优秀的代码还有一定距离,findbugs帮助我们提升代码质量,会发现一些具备不良用法的代码、暗藏性能问题的代码等等。
2023-03-01 17:48:20
46
原创 一些好用的工具
C++开发工具clionvscodenotepad++截图工具snipaste录屏工具搜索工具everything代理工具fiddler接口测试工具postman。
2023-03-01 17:45:27
9
转载 C++ 单元测试框架 Google Test (gtest)
https://blog.csdn.net/A_L_A_N/article/details/106952145
2023-03-01 10:47:44
16
原创 设计模式六大原则(六)----开闭原则
而通过面向对象的继承和多态机制,可以实现对抽象体的继承,通过覆写其方法来改变固有行为,实现新的扩展方法,所以对于扩展就是开放的。我们在设计系统的时候, 不可能设想一次性把需求确定后, 后面就不改变了.这不科学也不现实的. 既然需求是一定会变化的, 那么我们要如何优雅的面对这种变化呢?这里投射出的意思是:需求总是变化的, 可是对于软件设计者来说, 如何才能做到不对原有系统修改的前提下, 实现灵活的扩展. 这就是开闭原则要实现的.对扩展开放,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。
2023-02-28 15:37:02
187
原创 设计模式之单例模式
在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。这种方式本身就线程安全,没有多线程的线程安全问题。系统运行中,实例并不存在,只有当需要使用该实例时,才会去创建并使用实例。拷贝构造函数和赋值构造函数是私有类型,目的是禁止外部拷贝和赋值,确保实例的唯一性。单例模式是指在整个系统生命周期内,保证一个类只能产生一个实例,确保该类的唯一性。单例模式可以分为 懒汉式 和 饿汉式 ,两者之间的区别在于创建实例的时间不同。
2023-02-28 15:32:53
161
原创 设计模式之工厂模式
简单来说就是用户要订纽约工厂的披萨,他必须去纽约工厂,想订伦敦工厂的披萨,必须去伦敦工厂。工厂方法的适用场合:现在不光有伦敦工厂,还增设了纽约工厂(仍然是同一等级结构,但是支持了产品的拓展),这两个工厂依然只生产三种类型的pizza:chesse,pepper,greak(固定产品)。抽象工厂的适用场合:不光增设了纽约工厂(仍然是同一等级结构,但是支持了产品的拓展),这两个工厂还增加了一种新的类型的pizza:chinese pizza(增加产品族)。抽象工厂 :用来生产不同产品族的全部产品。
2023-02-28 14:38:41
486
原创 23 种设计模式详解(全23种)
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
2023-02-28 14:29:35
5
原创 qt操作文件以及字符串转换
/QTextStream方法读取速度至少快百分之30。//从文件加载英文属性与中文属性对照表。Qt|将QString字符串写入文件中。String和QString之间的转化。
2023-02-28 10:43:37
184
原创 mac系统常用操作指南
32.编辑配置文件 vi ~/.bash_profile,终端打开文件,按下i键就是编辑,上下左右键切换光标,如果想要退出,如果在编辑模式先按下esc,然后按下Shift + 冒号,否则直接。18.有的时候我们知道一个文件路径,如何快速打开文件夹呢,可以在访达中点击顶部的前往菜单按钮,选择前往文件夹选项,输入路径即可。12.appstore安装应用,获取之后,点击安装,如果是付费的就需要appid输入账号密码,安装成功后就会出现在启动项里面。
2023-02-28 09:45:19
130
原创 macOs环境变量
做代码开发,各种工具都需要设置系统环境变量,在macos系统里面,设置环境变量与windows的配置过程有很大差别,又因为系统升级原因,导致了一些遗留问题,对于初学用户,不是很容易理解这些内容。~/.bash_profile,~/.bash_login,~/.profile依次加载,如果~/.bash_profile不存在,依次加载后面几个文件;~/.zshrc:设置:source ~/.bash_profile,保证启动shell的时候~/.bash_profile环境变量生效。四、平时会遇到的问题。
2023-02-28 09:45:17
101
原创 kiwi编码格式简介
Kiwi是一种基于模式的二进制格式,用于有效地编码数据树。它的灵感来自Google的格式,但更简单,编码更紧凑,并且对可选字段的支持更好。前向兼容性:如果新模式的副本与数据捆绑在一起,则旧版本的模式可以选择读取新数据(新模式可让解码器跳过未知字段)。可选字段的存在是可检测到的:对于协议缓冲区,这是不可能的,尤其是对于重复字段。常用值的有效编码:可变长度编码用于数字值,其中较小的值占用较少的空间。复合对象的有效编码: struct功能支持嵌套对象,且编码开销为零。向后兼容性:新版本的架构仍可以读取旧数据。
2023-02-28 08:54:58
6
转载 jsoncpp中json字符串的格式化及非格式化转换
版权声明:本文为CSDN博主「Pisces_224」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。之前搞jsoncpp解析时,在将一个json数组整体赋值给一个string变量时,当时调用的是。另,想要string串中的单个字符替换为另一种字符的,传送门在这:点这里。分类专栏: C++ 文章标签: json串格式化/非格式化 c++//方法一:转为格式化字符串,里面加了很多空格及换行符。//方法二:转为未格式化字符串,无多余空格及换行符。//root中写入数据。
2023-02-27 17:15:26
117
原创 GitHub上的watch,star和fork的含义
GitHub右上角Watch、Star和Fork详解GitHub项目的右上角都会有三个按钮,分别是Watch、Star和Fork,Watch、Star和Fork是什么意思?码笔记来说说Watch、Star和Fork的意思以及如何使用:
2023-02-27 17:13:00
190
原创 cpplint的安装说明
3、pre-commit install【ps: 这一行命令需要在当前项目根目录下运行】git reset --hard (commit hash值) //回退到某个提交。然后在项目目录下会有.git\hooks\pre-commit 文件。git diff --cached -U0 //比较更改。用自己编写好的pre-commit替换这个文件就可以了。因为之前安装过python2.7,现在就不用安装了。进到项目目录,右键git bash here。
2023-02-27 17:09:13
193
原创 创建一个简单的局域网http-server
首先安装node.js,然后npm intsall -g http-server (全局安装http-server。然后cmd进入该目录,执行http-server -p 8787(不指定端口默认是8080)引用到的文件目录 , 在此目录下执行cmd操作, 然后再命令行下面执行上述操作。如果姚跨域的话就是http-server -p 3000 --cors。启动http-server之后,即可再浏览器输入地址和端口访问了。然后创建一个目录,在目录下随便创建一个html文件。
2023-02-27 17:01:21
34
原创 EM_ASM系列宏定义(emscripten)
EM_ASM_支持输入数值类型的可变参数, 同时返回整数类型的结果。很多编译器支持在C/C代码直接嵌入汇编代码,Emscripten采用类似的方式,提供了一组以“EM_ASM”为前缀的宏,用于以内联的方式在C/C代码中直接嵌入JavaScript代码。如果嵌入的JavaScript代码不需要参数,可以使用EM_ASM_INT_V/EM_ASM_DOUBLE_V宏。EM_ASM_DOUBLE用法与EM_ASM_基本一致,区别是EM_ASM_DOUBLE返回值为double。2.5 EM_ASM系列宏。
2023-02-27 16:53:13
135
转载 一文详解CMakeLists文件编写语法规则详解
cmake中project命令正是定义了解决方案的名称,add_executable和add_library命令都会生成一个项目,cmake会自动为每个项目(包括生成可执行文件的项目和生成链接库的项目)创建对应的文件夹,存储编译中间文件。回到project命令下的问题,在外部构建的情况下,PROJECT_SOURCE_DIR指向 的目录同内部构建一样,仍然是项目目录,而PROJECT_BINARY_DIR则有所不同,指向的是/build目录。cmake强烈推荐使用外部构建的方法。
2023-02-27 16:37:33
34
原创 windows11 和 chrome设置暗黑模式
地址栏输入:chrome://flags/#enable-force-dark。搜索drak,设置enable。菜单 设置--首选项。
2023-02-27 16:32:30
40
原创 C++标准头文件搜索/搜索C++标准函数的头文件
1.在 cppreference网站 站内搜索 这个可能需要代理。比如 std::forward cppreference。2.直接在Google搜索。
2023-02-27 16:18:15
10
原创 C++ STL vector添加元素(push_back()和emplace_back())详解
push_back() 向容器尾部添加元素时,首先会创建这个元素,然后再将这个元素拷贝或者移动到容器中(如果是拷贝的话,事后会自行销毁先前创建的这个元素);而 emplace_back() 在实现时,则是直接在容器尾部创建这个元素,省去了拷贝或移动元素的过程。显然完成同样的操作,push_back() 的底层实现过程比 emplace_back() 更繁琐,换句话说,emplace_back() 的执行效率比 push_back() 高。因此,在实际使用时,建议大家优先选用 emplace_back()。
2023-02-27 16:14:52
82
原创 C++非类型的模板参数
未加确定的代码,直到模板被实例化这些参数细节才真正被确定。而非类型模板参数,面对的未加确定的参数细节是指(value),而非类型。当要使用基于值的模板时,你必须显式地指定这些值,模板方可被实例化。非类型模板参看,顾名思义,模板参数不限定于类型,普通值也可作为模板参数。在基于类型的模板中,模板实例化时所依赖的是某一类型的模板参数,你定义了一些模板参数(
2023-02-27 16:07:51
8
转载 QT绘制的基本知识
画笔属性可以在构造函数中指定,也可以使用setStyle(),setWidth(),setBrush(),setCapStyle(),setJoinStyle()等函数设定;HSV/HSL模型比较符合人对颜色的感觉,由色调(0-359),饱和度(0-255),亮度(0-255)组成,主要用于颜色选择器。字体使用QFont类定义,当绘制文字时,Qt使用指定字体的属性,如果没有匹配的字体,Qt将使用最接近的字体;完成0-1范围的填充后,后续颜色铺开的方式可以不同,通过setSpread()函数来设置。
2023-02-24 11:16:23
59
原创 工作中常用的git命令
详细见:file:///D:/%E4%B9%8B%E5%89%8D%E6%A1%8C%E9%9D%A2%E8%B5%84%E6%96%99/git%E7%9B%B8%E5%85%B3/git%20cherry-pick%20%E6%95%99%E7%A8%8B%20-%20%E9%98%AE%E4%B8%80%E5%B3%B0%E7%9A%84%E7%BD%91%E7%BB%9C%E6%97%A5%E5%BF%97.mhtml。对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。
2023-02-23 15:51:59
170
原创 clion开发的常用快捷键以及gitcrlf的问题
前段报错:git config core.autocrlf false。然后 git bash ,执行 git reset --hard。然后删除app目录下的文件,除了.git文件夹。Ctrl alt 左键代表返回上一个编辑处。Ctrl alt 右键代表返回下一个编辑处。Ctrl shift f 搜索一切东西。Ctrl + 鼠标左键点击进入函数定义。Double shift 搜索文件。Ctrl 加减号是收起花括号。Shift F8 单步跳出。Ctrl加加号是展开花括号。Ctrl F8 打断点。
2023-02-23 15:44:48
265
ChangeConfig 用于读写INI文件,方便操作配置选项
2022-06-06
adb工具可用于PC与安卓手机交换文件
2022-03-22
C++11 function 委托机制 观察者模式,适用于界面开发,lambda表达式
2022-03-22
C++智能指针实现(包含拷贝构造,赋值函数,引用解引用重载)
2022-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人