自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 napi cmake 将c++库编译为node包

napi cmake 编译node包使用napi提供的方法把cmake c++项目打成node包,提供给javaScript用require引用环境准备第一步: 下载cmake-js npm i cmake-js -g 第一步: 改造CMakeLists.txt文件cmake_minimum_required(VERSION 3.9)# 0042索引对应的策略使用新策略,具体策略未知cmake_policy(SET CMP0042 NEW)set (CMAKE_CXX_STANDARD

2020-11-12 11:11:51 1817 1

原创 qml程序在linux上无法接收输入

qml程序在linux上无法接收输入之前在改一个老项目时,发现windows上正常的qt程序,在linux上存在很多bug,其中就包含无法接收输入的问题。分析在TextInput组件中监控focus改变,通过调整背景色监控是否有真正改变掉,发现的确是有获取焦点的,但是无法接收输入。在陷入僵局的情况下,我尝试性的调用了show方法,发现可以输入了,但是show方法在这个项目中有其他bug。又陷入僵局,突然想到既然和平台相关,很可能是flags的问题,于是一个个屏蔽flags,并且在官方文档查看该fl

2020-08-04 11:32:56 453

原创 manjaro系统下,qt程序显示不正常

manjaor linux下kde桌面,自己写的qt程序界面显示异常

2020-07-22 18:06:49 657 1

原创 在obs 源码打印日志,但是编译后未打印的问题分析

在obs 源码打印日志,但是编译后未打印在一次分析obs源码过程中,遇到了这样一个问题,我在源码中打印了日志,但是编译后的产物却跟未改动一样。初步定位问题初步怀疑是因为编译产物没有删除干净,或者cmake的锁导致没有编译到该文件,于是删除了构建目录,从源码重新执行cmake和make, 然后运行程序,发现我的改动依然没有生效。是否有编译该文件故意在该文件产生一个语法错误,再次编译,发现编译失败,这样就可以排除未被编译的错误了,那么就只能是编译了,但是没有使用到。这种应该就是编译成.so文件了。

2020-07-15 10:37:01 441

原创 webpack打包less出错

webpack打包less文件的时候出现了以下错误 :ERROR in ./node_modules/[email protected]@antd/lib/button/style/index.less (./node_modules/[email protected]@css-loader/dist/cjs.js!./node_modules/[email protected]@less-loader/dist/cjs.js!./node_modules/[email protected]@antd/lib/button/

2020-06-01 15:18:12 2868

原创 ArchLinux更新导致ycm出现问题

这里写自定义目录标题ArchLinux更新后ycm出现问题解决方案注意:ArchLinux更新后ycm出现问题ArchLinux是一种更新非常频繁的Linux系统,它的很多软件都会保持最新,ycm是一款vim的代码补全插件,几乎是使用vim开发c++的必备神器。ycm依赖clang和Python,所以这二者更新后总是会出现各种问题。解决方案进入到YouCompleteMe插件目录执行./install.py --clang-completer --system-libclang --go-com

2020-05-28 15:30:06 225

原创 qml调用c++

一、将c++对象注册到qml引擎中: 方法有很多种,这里只介绍下面这几种:1.将c++类型导出为qml可以使用的类型#include <QtQml>#include <QQmlApplicationEngine>......//注册一定要放在qml上下文之前//qmlRegisterType<对象名>("自定义的包名",主版...

2019-12-31 08:59:14 402

原创 cmake管理qt项目时,使用翻译模块

qt在创建项目时可以选择build system为cmake,qtcreator会自动帮用户创建CMakeLists.txt文件,并且写入一些简单的内容。CMake官方已经对qt提供了一些支持,但是支持有限,所以qt官方自己也写了一些cmake模块文件,但是在使用过程中,qt的一些模块可能还需要手动添加。在使用qt预言家的功能时,就需要这种方式添加模块。我在CMakeLists.txt文件...

2019-11-29 15:13:38 3526 1

原创 Windows下使用cmake和qt构建程序

1. 将以下路径加入Path环境变量(需要根据自己的安装路径加上前缀):# 可以使用cmakeCmake\bin#VS自动查找关键的库,其他的编译器,在Qt\5.12.5\有对应的子目录Qt\5.12.5\msvc2017\bin2. Windows下还需要在cmakelist中加入查找cmake文件的代码,用于查找.cmake文件;if (WIN32) ...

2019-11-23 11:12:27 1011

原创 Linux下使用socket的accpt函数

#include &lt;sys/socket&gt;int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);这个函数是从完成三次握手队列中取得一个已完成的链接,但是这样会存在一个隐患,因为可能在连接处于就绪队列里面的时候,连接已经中断了,你此时accept到的很可能就是一个已经关闭的客户端连接。也就是说acc...

2018-10-25 14:06:57 298

原创 信号的使用心得

信号1.signal函数#include         typedef void (*sighandler_t)(int);        sighandler_t signal(int signum, sighandler_t handler);返回值:函数错误返回SIG_ERR(-1),成功返回处理函数指针;参数:第一个参数:表示要处理的信号编号;

2017-11-04 22:30:24 162

原创 gdb常用命令

调试:GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。gcc编译时,加 -g参数即表示编译Debug版本的可执行文件。只有Debug版本的可执行文件才能调试。gdb main 启动GDB  //注:main表示可执行程序。l  相当于list,从第一行开始列出源代码;set listsize  设置一次显示的行号;show listsize 查看当前list

2017-11-04 22:29:44 161

原创 编译程序

编译程序:编译程序分为四步:预编译-->编译-->汇编-->链接1.预编译: 展开所有的宏,处理所以条件编译指令,处理”#include”预编译指令,删除所有注释符。gcc  -E  main.c  -o  main.i或者 gcc  -E  -o  mian.i  main.c2.编译:进行词法分析、语法分析,优化等,生成汇编文件。 gcc  -S  

2017-10-27 22:40:53 200

原创 fork()创建子进程

fork()该函数有三种返回值,成功返回2个返回值,父进程返回子进程的PID,子进程返回0,失败返回-1;执行fork()函数后,首先查询PID是否有空余,如果没有多余的PID,则fork失败,如果PID充足,复制父进程的PID,写入自己的PID,父进程的PID。然后判断内存空间是否足够分配进程空间,如果空间不足,则fork失败,如果空间充足,则分配进程空间;子进程复制了父进程的文件表

2017-10-27 20:53:26 908

原创 c++函数重载

函数原型:返回类型+函数名+参数c++是用函数原型来区别不同函数的,而c语言是用函数名区分;函数重载:函数名相同,但是参数类型或者个数不同的函数(不能拿返回类型作为函数重载的依据);char  Max(char a,  char b);名字粉碎时,c++将名称变为:?Max@@YAHHH@Z;但是c语言变为:_Maxint  Max(int a,  int b);c

2017-10-24 14:17:10 177

原创 宏定义、常型变量、枚举之间的区别

宏定义:1.不带参数:#define  宏名  替换内容会在预编译时将代码中的所有引用的“宏”替换成“替换内容”宏定义不分配内存可以使用#undef取消宏定义宏名必须是合法用户标识符#define xx   "asdd    是错误的,出现引号,必须成对例如:#define Pi 3.1415926把程序中出现的Pi全部换成3.1415926

2017-10-17 17:40:56 793

原创 数据结构20171007

课后总结

2017-10-07 22:49:29 207

原创 assert运用的理解

笔记

2017-09-22 16:33:52 187

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除