- 博客(31)
- 收藏
- 关注
原创 009 - 交叉编译 Qt5.12
交叉编译 Qt5.12文章目录交叉编译 Qt5.12前言准备 sysroot基础镜像安装需要的依赖库安装自己要用的工具创建 pkgconfig 软链接退出 qemu 环境处理软链接主机安装编译工具交叉编译工具链安装编译需要的环境编译Qt配置 mkspecsconfiguremakemake installWebEngine去掉qt库交叉编译信息目前遇到的问题eglfsqmake附件附件1 c.py 脚本附件2 convert2target.sh 脚本前言之前我说了一句,就算板子性能再弱,编译需要的时间
2022-03-30 20:42:47
1583
原创 008 - windeployqt 打包程序
windeployqt 打包程序打包程序注意编译工具要使用对应的发布工具%QT_DIR% 和 %QT_VERSION% 替换为自己的实际路径即可在自己的可执行文件 xxx.exe 路径下打开命令行执行完之后就会发现多了很多东西,可以愉快的打包了MSVC这个其实没什么说的%QT_DIR%\%QT_VERSION%\msvc2017_64\bin\windeployqt.exe xxx.exeMinGW需要将 MinGW bin 目录添加到环境变量,不然打包会出问题%QT_DIR%\%Q
2022-03-30 20:42:16
228
原创 007 - 配置 Clion 调试显示 Qt 变量
配置 Clion 调试显示 Qt 变量文章目录配置 Clion 调试显示 Qt 变量引言尝试解决配置Lekensteyn's qt5printersKDevelop formatters for GDB配置完成之后的效果问题及解决附录A 测试代码附件参考文章引言众所周知,Clion 写 C++ 是真的爽,但是写 QT 是 2020.3 及其以后版本官方才做了一定的支持,但是调试过程中还是看不到 QT 变量,只能看到 d 指针地址,不信你看 👇👇👇使用 Qt Creator 的时候就就能看到里面的值
2022-03-30 20:40:15
3534
5
原创 006 - Windows 下 C++ 程序以管理员运行(UAC)
Windows 下 C++ 程序以管理员运行(UAC)MSVC 编译器qmake在 pro 文件中添加一行指令即可,QMAKE_LFLAGS += /MANIFESTUAC:"level='requireAdministrator'uiAccess='false'"cmakeset_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "/MANIFESTUAC:\"level='requireAdministrato
2022-03-30 20:39:29
2084
原创 006 - 编译 QtWebEngine
编译 QtWebEngine文章目录编译 QtWebEngine前言源码下载编译安装编译过程中可能遇到的问题参考文档前言在之前的文章《Linux 安装 Qt》中,我说了一句 QtWenEngine 模块不好编译,暂时用不到就不管,可没想到苍天饶过谁,这么快就需要用 QtWenEngine 了,能怎么办,编呗,接着编……源码下载之前的 qt 源码里面有 webengine 的源码编译安装根据官方文档,先安装依赖库;根据官方推荐安装的,咱也不知道对不对,主要是这玩意太难编译了,就宁可多装一千,不能
2022-03-30 20:38:15
6140
8
原创 009 - 线程设置名字
线程设置名字有些情况下,多线程的话,需要给线程设置名字,方便调试。但是 C++11 虽说标准库就支持线程,但是并没有封装其他操作线程的方法,就很难受。话不多说,show code#include <thread>#ifdef WIN32#include <Windows.h>#include <processthreadsapi.h>#else#include <pthread.h>#endifvoid worker(){ s
2022-03-30 20:31:43
1328
原创 008 - 使用 gdb 和 gdbserver 远程调试
使用 gdb 和 gdbserver 远程调试 (未完成)文章目录使用 gdb 和 gdbserver 远程调试 (未完成)前言前言对于软件开发来说,调试程序是比不可少的。对于开发PC软件通常系统已经集成了调试工具(比如Linux系统的GDB),或者 IDE 直接支持对程序的调试。而对于开发嵌入式软件来说调试的手段比较有限,很多开发者仅有的调试手段依然是最原始的打印,我也是这样干的,但是这个生产效率可真是太低了。那有没有什么办法不使用打印调试呢?当然有!可以直接在板子上运行 gdb 调试,但是源码是
2022-03-30 20:31:01
229
原创 007 - Log4cplus 配置文件
Log4cplus 配置文件前言之前文章《log4cplus使用》中提到使用代码配置的不灵活,log4cplus 是 log4j 的 c++ 实现,那肯定也是能支持配置文件的。这里就简单来说说 log4cplus 配置文件的使用配置文件log.properties# 日志级别,FATAL, ERROR, WARN, INFO, DEBUG, TRACE,由高到低log4cplus.rootLogger=TRACE,console,file,errorFile# 控制台Appenderlog
2022-03-30 20:29:52
1191
原创 006 - log4cplus 使用
log4cplus 使用前言log4cplus 是 log4j 的 C++ 实现,提供的接口和使用逻辑与 log4j 基本保持一致;有 log4j 使用经验的人使用 log4cplus 是一件很愉快的事情。下载编译下载源码仓库地址 https://github.com/log4cplus/log4cplus编译安装依次执行以下语句tar xvf log4cplus-2.0.6.tar.xzcd log4cplus-2.0.6mkdir buildcd buildcmake ..ma
2022-03-30 20:29:08
1140
原创 005 - 编译安装 QtCreator
编译安装 QtCreator参考官方文档 https://wiki.qt.io/Building_Qt_Creator_from_Git下载源码https://download.qt.io/official_releases/qtcreator/源码下载目录说明或者国内镜像可以参考之前的文章《Linux 安装 QT》因为我自己编译的 qt 是 5.12 版本的,所以我下载的是 4.13 版本的 qt creator我是下载下来看了 readme 才知道需要的 qt 版本;不知道有没有其他办法使
2021-06-24 10:30:56
4803
原创 004 - C++11 中的字面量
C++11 中的字面量引言也是看了 JSON for Modern C++ 的源码,发现它竟然可以直接通过以下代码直接生成 json 对象nlohmann::json json = R"({"Foo":"foo"})"_json;通过 IDE 跳转到定义,看到函数定义如下inline nlohmann::json operator "" _json(const char* s, std::size_t n){ return nlohmann::json::parse(s, s + n)
2021-06-04 14:19:52
274
原创 005 - C 可变参数宏
C 可变参数宏文章目录C 可变参数宏引言收集资料进入正题展开过程分析还有一句引言在看 JSON for Modern C++ 的源码时,看到有可变参数宏的使用,觉得这是个好东西,遂研究之。收集资料经过一番百度后,大概只能搜到以下用法#define PRINTF(...) printf(__VA_ARGS__)PRINTF("Foo %d Bar %d", 1, 2);或者这种用法#define ERROR(...) \fprintf(stderr, "File: %s, Line:
2021-06-04 14:18:42
294
原创 003 - C++ CSharp Java 调用 C++ DLL
C++ CSharp Java 调用 C++ DLL文章目录C++ CSharp Java 调用 C++ DLL导出C++ Dll在函数定义时候加extern "C" _declspec(dllexport)使用模块定义文件(.def)声明简单调用C++ DLLC++动态调用C#调用Java调用导出C++ DllC++编译器为VS201964为的Debug模式生成的无法调用(不知道具体原因)C++导出函数接口的方式主要有两种:_stdcall可以在项目属性 -> C/C++ -> 高
2021-06-04 14:17:18
437
原创 002 - CLion 远程开发
CLion 远程开发文章目录CLion 远程开发引言使用 GDB/gdbserverGDB Remote DebugRemote GDB Server完全远程模式参考链接引言不是所有目标机器都会有开发环境,或者说有些机器直接不支持安装开发环境,这个时候就需要远程调试了。但是远程调试 gdbserver 和 GDB 的命令又太多,记不住且工作效率低,所以需要借助一定的工具,幸好 CLion 就为远程调试提供了一系列的解决方案。使用 GDB/gdbserver如目标机器上不支持开发环境的话,GDB/g
2021-06-04 14:16:30
2301
1
原创 004 - Linux Qt 使用搜狗输入法
Linux Qt 使用搜狗输入法文章目录Linux Qt 使用搜狗输入法前言解决方案Qt Creator 使用搜狗输入法Qt 生成的应用使用搜狗输入法前言不出意外的话,Qt 是不能使用搜狗输入法的,状态栏都看不到那种。主要是搜狗输入法使用的是小企鹅(fcitx) 输入框架,Qt 默认没有集成。解决方案将小企鹅输入法扩展复制到相应的路径下Qt Creator 使用搜狗输入法复制小企鹅扩展到 Qt Creator 相应路径下$QtDir为自己 Qt 的安装路径cd $QtDir/Tools/
2021-06-04 13:34:52
2118
2
原创 003 - Clion 创建 Qt UI Class 踩坑
Clion 创建 Qt UI Class 踩坑注意 UI 类名和文件名关系创建 UI 类 MainWindow;文件标红,按照提示先 build 一下build 报错所以新建 UI 类的时候要确保 Name 和 Filename base 大小写要保持一致使用 Qt Designer 无法拖拽控件到 Window原因对比使用 Qt Creator 直接创建的 ui 文件,发现 clion 创建的缺少了 ‘<widget class=“QWidget” name=“centralWid
2021-06-04 13:33:38
2086
3
原创 002 - 配置 Clion Qt 开发环境
配置 Clion Qt 开发环境文章目录配置 Clion Qt 开发环境安装配置 ClionExternal ToolsFile and Code TemplatesCMake文件打包Qt应用程序安装Qt 下载http://download.qt.io/archive/qt/安装Windows添加Tools需要选择MinGW,添加环境变量Linux参考Linux 安装 QT/usr/lib/x86_64-linux-gnu/qtchooser/default.conf第一行Qt
2021-06-04 13:32:50
868
原创 001 - Linux 安装/编译 QT
Linux 安装 QT文章目录Linux 安装 QT离线安装版下载Qt 官方下载国内镜像站下载安装安装后配置源码编译安装下载源码编译安装第一次使用可能出现的问题离线安装版离线安装没有 Arm 架构的,且 5.15 版本开始就不提供离线安装包了下载Qt 官方下载地址:http://download.qt.io/可能会打不开且下载巨慢,不详细阐述国内镜像站下载国内著名的几个 Qt 镜像网站中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/清华大学
2021-06-04 13:31:46
1132
原创 001 - Linux C/C++ 开发环境搭建
Linux C/C++ 开发环境搭建文章目录Linux C/C++ 开发环境搭建引言编译调试工具项目构建工具集成开发环境(IDE)Qt CreatorVisual Studio CodeCLion引言Windows 下 C/C++ 开发可以直接用宇宙第一 IDE Visual Studio;但是 Linux 下就不能用了以 Ubuntu 为例搭建 Linux C/C++ 开发环境编译调试工具编译器sudo apt updatesudo apt install gcc g++调试器sud
2021-06-03 16:56:00
23522
1
原创 007 - CMake 运行 CTest 进行测试
CMake 运行 CTest 进行测试文章目录CMake 运行 CTest 进行测试引言使用方式根目录加 `enable_testing()`加上测试 `add_test`编译运行看结果`add_test` 命令设置测试属性WILL_FAILTIMEOUTTIMEOUT_AFTER_MATCHPASS_REGULAR_EXPRESSIONFAIL_REGULAR_EXPRESSIONSKIP_REGULAR_EXPRESSIONSKIP_RETURN_CODE其他属性引言写代码嘛,总归是要写一些测试
2021-06-03 16:42:01
12258
原创 006 - CMake 安装动态库并生成 XxxConfig.cmake 文件
CMake 安装动态库并生成 XxxConfig.cmake 文件文章目录CMake 安装动态库并生成 XxxConfig.cmake 文件引言展示简单解释set_target_propertiestarget_include_directoriesconfigure_package_config_filewrite_basic_package_version_fileinstallTARGETSFILES|PROGRAMSEXPORT引言之前说了一下《使用 CMake 生成动态库/静态库》,既然写了
2021-06-03 16:40:17
6508
2
原创 005 - 使用 CMake 生成动态库/静态库
使用 CMake 生成动态库/静态库文章目录使用 CMake 生成动态库/静态库先看例子简单解释一下一些目前能想到的点对外提供动态库先看例子废话不多说,上 CMakeLists.txtcmake_minimum_required(VERSION 3.16)project(FooLibrary VERSION 1.0.0)set(CMAKE_CXX_STANDARD 11)add_library(${PROJECT_NAME} SHARED library.cpp library.h)
2021-06-03 16:38:09
10163
4
原创 004 - VS Code 使用 CMake 构建项目
VS Code 使用 CMake 构建项目安装必要插件CMakeCMake ToolsC/C++装好插件之后状态栏就可以看到一系列按钮,就可以愉快地使用了由于个人水平有限,文中若有不合理或不正确的地方欢迎指出改正文章可能更新不及时,请以个人博客处文章为准...
2021-06-03 16:35:38
273
原创 003 - Eclipse 使用 CMake 构建项目
Eclipse 使用 CMake 构建项目下载Eclipse IDE for C/C++ Developershttps://www.eclipse.org/downloads/packages/2021-03 R 以前的版本会有各种问题使用新建 C++ 项目选择 CMake Project问题可以编译;但代码标红右键项目 -> index -> rebuild选了 Debug 还是无法调试手动在 CMakeLists.txt 加上 set(CMAKE_BUILD_
2021-06-03 16:34:30
3049
原创 002 - CMake 管理多项目
CMake 管理多项目项目结构.├── CMakeLists.txt└── src ├── CMakeLists.txt ├── math │ ├── CMakeLists.txt │ ├── math.cpp │ └── math.h ├── print │ ├── CMakeLists.txt │ ├── prin
2021-06-03 16:33:11
4318
原创 001 - CMake 安装
CMake 安装文章目录CMake 安装CMake 是什么为什么使用 CMakeCMake安装下载二进制压缩包安装源码安装验证安装是否成功实例CMake 版 Hello WorldCMake 是什么CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构
2021-06-03 16:31:35
3165
原创 Go 语言开发环境准备
Go 语言开发环境准备文章目录Go 语言开发环境准备Go 语言环境安装(Win)下载环境变量IDE 安装(GoLand)实例Go 语言环境安装(Win)下载https://golang.google.cn/dl/环境变量GOPATH 项目目录;作用参见 go入门–设置 GOPATH 有什么意义GOROOT 安装路径path 添加 %GOROOT%\bincmd 输入 go env 检查环境变量是否设置成功IDE 安装(GoLand)下载地址 https://www.jetbrain
2021-05-07 11:19:11
125
1
原创 VS2017 & VS2019 创建离线安装包
VS2017 & VS2019 创建离线安装包文章目录VS2017 & VS2019 创建离线安装包微软教程下载安装引导程序创建安装包命令安装文件命令已包含工作负载或组件ID和名称微软教程使用命令行参数安装 Visual Studio 2017使用命令行参数安装 Visual Studio 2019下载安装引导程序以下链接均来自微软官网Visual Studio 2017 CommunityVisual Studio 2017 ProfessionalVisual Stud
2021-05-07 11:15:34
927
1
原创 MySQL常见问题及优化
MySQL常见问题及优化文章目录MySQL常见问题及优化@[toc]MySQL解压版安装WindowsLinux常见问题1:char、varchar的区别是什么?2: TRUNCATE和DELETE的区别是什么?3:什么是触发器,mysql中都有哪些触发器?4:FLOAT和DOUBLE的区别是什么?5:下面mysql数据类型表达的意义(int(0)、char(16)、varchar(16)、datetime、text)6:MySQL常用表引擎7:InnoDB和MyISAM的区别8:Innodb引擎的特
2021-05-07 11:09:49
101
原创 安卓 NDK native 方法 crash 定位分析
安卓 NDK native 方法 crash 定位分析addr2line工具在 ndk/toolchains/aarch64-linux-android-4.9/prebuilt/windows-x86_64/bin 目录下用法addr2line [OPTIONS] addr [addr ...]OPTIONS-a --addresses:在函数名、文件和行号信息之前,显示地址,以十六进制形式-b --target=<bfdname>:指定目标文件的格式为 bfdname-e
2021-05-07 11:03:08
318
原创 Docker & docker-compose
Docker & docker-compose文章目录Docker & docker-composeDocker国内镜像加速配置基本命令网络相关Docker部署常用应用命令Docker打包镜像Dockerfiledocker-compose安装docker-compose.yml启动docker-compose file version和docker version关系Docker国内镜像加速配置DaoCloud目前好像不太行了 - 2020年8月2日创建或修改 /etc
2021-05-07 11:01:41
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人