找到
21
篇与
刘纪彤
相关的结果
- 第 2 页
-
Qt6 Cmake编译MySql驱动、连接Mysql数据库教程 Qt6 Cmake编译MySql驱动、连接Mysql数据库教程 众所周知,自Qt5.7以后,Qt官方已经不再提供MySQL驱动,而是转向了MariaDB。但是,对于一些项目,可能还是需要使用MySQL,这时候就需要自己编译MySQL驱动了。 当使用Cmake出现如下报错:QSqldatabase: No Such file and directory。这种情况其实是跟CmakeList里面里面添加SQL模块有关,需要在CmakeList里面添加SQL模块。 在Cmake中添加SQL模块 首先打开CmakeList.txt文件,添加如下代码: find_package(Qt NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Sql) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Sql)接下来在CmakeList.txt文件中添加如下代码: 注意${PROJECT_NAME}是您的项目名称,请将其替换为您的项目名称。 target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets) target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::Widgets)编译MySQL驱动 在完成上述步骤后,如果你没有MYSQL驱动的话,你在编译的时候会在应用程序输出那里看到: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: xxxx前提说明:我的MYSQL服务端是部署于服务器上的,但是对于本地开发时,本地是MYSQL服务端是否适用于本教程,我没有测试过,但是我认为应该是可以的。 下载MySQL驱动 进入到MySQL官网下载MySQL驱动,进入到MySQL官网下载页面,找到MySQL Community Server,点击Archives. 1716132307703图片 找到自己的服务端版本,我使用的是8.0.35版本 1716132349164图片 找到ZIP Archive,点击下载 1716132451724图片 下载完成后,解压到一个文件夹下,并记住这个文件夹的路径。 编译MySQL驱动 解压完成之后呢,我们找到Qt的安装目录,使用maintenance tool打开,添加删除组件,下载sources源码。 1716133095626图片 记下来在Qt的安装目录下找到源码(src)文件夹,在Qt creator中打开项目,找到src->qtbase->src->plugins->sqldrivers的cmakelist.txt文件,打开。 在Cmake Modules中找到.cmake.conf文件,打开,修改 1716133532668图片 set(feature_sql_mysql ON) set(MYSQL_INCLUDE_DIR "路径/include") set(MYSQL_LIBRARY "路径/lib/libmysql/lib")注意修改为你自己的路径。设置完成之后,点击左下角小锤子,等待进度条跑完。 接着在Src->qtbase->src->plugins->build-xxx->plugins->sqldrivers中找到.debug和.dll文件。 1716133894752图片 接下来把这两个文件粘贴在mingw_64->plugins->sqldrivers中。 1716134195444图片 之后再把下载的mysql.dll和lib放在mingw_64->bin中。 1716134373910图片 1716134411286图片 高版本mysql的依赖问题 如果你的mysql版本比较高,可能会出现依赖问题,可以使用dependencies,并去网上搜索libmysql.dll的依赖库,然后把依赖库放在mingw_64->bin中。
-
Ubuntu的安装部署(VirtualBox虚拟机安装Ubuntu22.04LTS) Ubuntu的安装部署(VirtualBox虚拟机安装Ubuntu22.04LTS) 由于Vmare在近期可能下载不到(2024/05/16),所以我选择使用VirtualBox来安装Ubuntu22.04LTS。VirtualBox是一个开源程序,可以在Windows、Linux、MacOS等操作系统上运行虚拟机。在这里我将介绍如何在Windows上安装VirtualBox,并在VirtualBox上安装Ubuntu22.04LTS。 前期准备(安装VirtualBox、准备Ubuntu镜像文件) 1. 安装VirtualBox 前往VirtualBox官网下载安装VirtualBox 1715858954906图片 可以根据自己的进行修改安装路径,我将其安装在D盘下面 1715859087738图片 可能会提示需要安装依赖软件,点击是即可,等待安装完成即可 2. 准备Ubuntu镜像文件 我们可以选择前往在中国的镜像站点下载Ubuntu22.04LTS的镜像文件,这里我选择清华大学的镜像站点进行下载 清华大学开源软件镜像站 -> Ubuntu 22.04镜像 1715866399170图片 当然也可在首页如图所示进行下载 1715866531660图片 1715866547257图片 1715866556842图片 我们选的是desktop-amd64文件,点击下载即可,因为我们要学习使用Ubuntu,在前期使用的时候我们还是选则带有桌面的版本,下载完成之后我们就可以开始安装了 安装Ubuntu22.04LTS 1. 创建虚拟机 在VirtualBox中点击新建,输入虚拟机的名称、类型、版本、内存大小等信息,这里我选择的是Ubuntu 64位,内存大小选择 1715866596851图片 1715866623757图片 我们在这里选择手动安装(点选跳过自动安装),而非自动安装,如果您觉得以下教程麻烦,可以直接选择自动安装,但是我建议您选择手动安装,因为这样可以设置中文,避免一些奇奇怪怪的小问题,这样您可以更好的了解Ubuntu的安装过程。 硬件上我们选择4096MB的内存,处理器选择8个,我这里只是演示,请根据自己需要,选择合适的配置,我更推荐的是内存选择4GB,处理器选择4个,这样可以更好的运行Ubuntu 1715866668823图片 接着就到了创建虚拟硬盘的步骤,我们选择现在创建虚拟硬盘,磁盘空间选择20GB以上,可以不勾选预先分配全部空间。 1715866783080图片 如果您的磁盘空间充足或者有想把他用Ventoy制作成Linux to go的想法,建议勾选预先分配全部空间。 1715866952754图片 2. 安装Ubuntu 点击启动, 开始安装。 1715867001220图片 我们用Enter(回车)建选择Try or Install Ubuntu,进入安装界面 1715867085811图片 进入之后可以选择语言,我选择的是简体中文,选择安装Ubuntu 1715867148727图片 键盘布局,可以默认 1715867158593图片 为了节约安装时间,我们取消勾选安装Ubuntu时下载更新 接下来就可以点击现在安装,遇到分区表的时候,选择继续,默认安装即可 1715867239557图片 在安装过程中会创建用户,设置密码等,按照自己的用户名、密码、主机名等自定义即可。区域可选择ShangHai 这不会花费太长时间,安装完成之后,我们可以选择重启,这时候我们可以选择Enter(回车)重启,这个时候会卸载掉安装镜像文件,重启就会进入到Ubuntu的桌面界面 1715867285990图片 初次进入系统会让我们登录在线账户和Ubuntu Pro,这个可以选择跳过,我们可以选择跳过,这样就可以进入到Ubuntu的桌面界面了 1715867401175图片 这里还有一个小问题,发送报告,我们可以选择不发送,但是如果你想对Ubuntu做出贡献,可以选择发送,这样可以帮助Ubuntu更好的发展。(Maybe?) 1715867443273图片 3. 更换软件源 我们可以更换软件源,这样可以加快软件的下载速度,打开软件和更新,选择下载自,选择其他站点,然后选择选择最佳服务器,这样就可以自动选择最佳的软件源了。 1715867686625图片 1715867516588图片 1715867525489图片 我因为是校园网,所以选择的是清华大学开源镜像站 接下来运行sudo apt update,更新软件源。 如果你遇到了E:部分素引文件下载失败。如果忽略它们,那将转而使用旧的素引文件 1715867608693图片 这个时候需要我们去/etc/apt/sources.list文件中更改 首先我们先去清华大学开源软件镜像站Ubuntu帮助找到我们的Ubuntu版本,然后复制下面的链接 1715867800723图片 执行sudo nano /etc/apt/sources.list,然后将原来的链接替换成我们复制的链接,然后保存退出。 nano 的操作可以自行百度,这里不再赘述。 替换完成之后再次执行sudo apt upgrade和sudo apt update,这样就可以更新成功了。 尽请享受Ubuntu的世界吧!
-
Ubuntu使用root用户ssh登录 Ubuntu使用root用户ssh登录 测试版本:Ubuntu 22.04LTS 安装openssh-server sudo apt install openssh-server设置root用户密码 sudo passwd root修改sshd_config文件 sudo vim /etc/ssh/sshd_config使用vim编辑器打开sshd_config文件,找到PermitRootLogii这一行,将改为yes,保存并退出。并将前后共几行的内容改成如下所示: LoginGraceTime 2m PermitRootLogin yes StrictModes yes #MaxAuthTries 6 #MaxSessions 10重启ssh服务 sudo service ssh restart
-
2023年年度报告 本文摘自站长公众号:美丽新科技 前情提要:如果这篇文章成功被我发在公众号上,说明这几天真的是闲的没事干,真的把我一年的总结都写完了 众所周知,2023年是一个新的开始。经历了3年的疫情也终将结束了。 刚刚开学的日子,我第二次(第一次是北京大兴机场)也是第一次来到了北京。 ls38oraa.png图片 第一次看到了,北京天安门升旗仪式 ls38oyt3.png图片 正是因为疫情的结束,我的大学生活迎来了一次蓬勃的发展,跟随我的社团开展了若干次的电脑义诊活动。 (因为涉及肖像权问题,我就不贴照片了) 感谢我的学校(东华理工大学),让我见到了钱七虎院士,我无比荣幸啊 ls38p7ju.png图片 暑假我也很荣幸地参加了学院组织的三下乡活动 ls38pk9u.png图片 ls38pofn.png图片 ls38ps0l.png图片 ls38pvm1.png图片 前往上饶葛源新篁。也是一次全新的体验,也是一次全新的尝试。 暑期的我又游走四面八方,去了长沙,去了橘子洲头,去了贵阳,昆明,普洱,西双版纳,体验了一次前往边境地区的感觉 ls38q1y2.png图片 ls38q8xl.png图片 ls38qe5o.png图片 ls38qhws.png图片 ls38qm2b.png图片 ls38qpvn.png图片 ls38qt43.png图片 后来啊,暑假的我又去了青海地区一路上沿京昆高速,雅西高速,京藏高速等高速公路,也算是一种体验了中国基础设施建设,见识到了我们国家的基建,也是从这里为我所在的国家感到自豪。 ls38qysq.png图片 ls38r3dc.png图片 ls38r6dr.png图片 位于西宁的青海省博物馆为我介绍了当年的原子弹,两弹一星。 ls38rcgz.png图片 ls38rfac.png图片 ls38rjsm.png图片 ls38rnv5.png图片 ls38rre4.png图片 一望无际的茶卡盐湖 ls38rxzj.png图片 ls38s0yw.png图片 ls38s46k.png图片 随后,下半学期开始了,我踏上了返程。 ls38scf9.png图片 ls38sg05.png图片 ls38sjlk.png图片 ls38sp7k.png图片 ls38ssfh.png图片 ls38svrl.png图片 ls38syuo.png图片 ls38t2in.png图片 ls38t5sd.png图片 ls38t93g.png图片 ls38tcuc.png图片 ls38tgyx.png图片 ls38tkhq.png图片 ls38tnxv.png图片 ls38tr36.png图片 一路上,走过了青藏铁路的一小部分,青藏铁路也迎来了电气化时代,虽然只是通勤列车,但是他也展示了铁路的公益属性,乘坐高铁,快速旅客列车,特快旅客列车,一路上的风景和人文历史,都令我感觉到历史的厚重感。也许行万里路能让我们感悟到历史,活在当下吧。 国庆期间,我这个,一个半吊子的公共交通迷,选择和同学一起从南昌~宜春坐公交过去,算是领略了一下赣北地区的很多风光啊。 ls38tzud.png图片 ls38u5ec.png图片 ls38u8rk.png图片 ls38ubxu.png图片 ls38uf9e.png图片 ls38uifc.png图片 大学,无疑就是自由地做自己,完成学业的同时,也可以发掘自己的兴趣爱好。 看到无线电带来的乐趣,也同时为了一定的社会责任,我参加了江西省的无线电台操作技术能力验证考试 ls38unsf.png图片 当然也通过了,正式成为了一名火腿 ls38uuw8.png图片 得益于黑龙江省工信厅-伊春市无线电管理处的优秀高效的电子化政务服务,我在2023年也是成功获得了我的无线电台执照和呼号:BG2GBQ ls38v5n0.png图片 ls38va59.png图片 希望我接下来,继续学习无线电操作知识,努力将无线电作用发挥起来,为响应应急救援做准备。 大学的时光还有一段时间等着我去探索对吗 这一年也就这么结束了吧。 明年会更好,对吗? (没睡着觉,胡写的一篇文章,不喜勿喷嗷)
-
Joe再续前缘版对接LBS展示IP属地(本站同款) 为深度贯彻落实中央网信办《互联网用户账号信息管理规定》,开放查询IP操作,特将办法如下: 本文来源: https://blog.yanqingshan.com/130.html 上次偶然逛 CSDN 看到腾讯的 LBS 服务支持 IP 定位,而且还支持 IPv6 地址定位,这个是其他 LBS 供应商所不支持的 (百度地图、高德地图),所有腾讯 LBS 服务还算良心。我们一步一步对接主题吧,今天先来申请应用 AK。 注册账号 打开腾讯位置服务官网,点击登录,直接使用 QQ 登录或微信登录即可,如果单独注册需要输入手机号之类,麻烦的事情,但是使用 QQ 登录 / 微信登录后也需要校验一下手机号,但是个人信息不用填写太多。 腾讯位置服务官网 使用 QQ 登录 / 微信登录后会提示注册或绑定账号,这个时候我们直接选择注册账户即可。 绑定新用户 你看这样简单吧,输入手机号和邮箱就 OK, 不用填写过多信息,下次可以直接使用 QQ 或者微信登录即可。 注册账户 创建应用 这时候我们选择 WebService API 服务即可,选择后有三种方案,域名白名单、授权 IP、签名校验,一般我们会部署在服务器上,所以可以选择授权 IP,这样方便一些;域名白名单和签名校验限制有些多,且我们这次对接主题也是以授权 IP 为主。 保存后我们就能拿到一个 Key,这里我们简称 AK,下面开始对接 Joe 主题展示博友访客 IP 属地信息。 注意AK要给其分配调用次数 添加主题调用方法 2022.05.25:为了个人隐私,以下代码已去除城市和区县信息,仅显示国家和省 核心方法代码位置:Joe/core/function.php 在末尾添加以下代码 /* 腾讯Lbs IP定位服务 */ function curl_tencentlbs_ip($ip) { //应用Key也就是上面所说的AK,修改成自己的Key即可 $key = '5E4BZ-NYCKQ-2C25A-2E4PB-7CXJH-AMBKN'; $url = 'https://apis.map.qq.com/ws/location/v1/ip?ip='.$ip.'&key='.$key; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_HTTPGET, true); curl_setopt($ch, CURLOPT_REFERER, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'); $content = curl_exec($ch); curl_close($ch); if($content) { $json = json_decode($content,true); if($json['status'] == 0 ) { $resjson = $json['result']['ad_info']; if($resjson['province']=='北京市'||$resjson['province']=='天津市'||$resjson['province']=='上海市'||$resjson['province']=='重庆市') { echo $resjson['nation'].$resjson['city']; } echo $resjson['nation'].$resjson['province'].$resjson['city'].$resjson['district']; } } else echo '未知IP地址'; echo ''; }上面调用接口后,处理以下国内的直辖市,这样就不会显示成北京市北京市了。 修改主题评论相关代码 评论代码位置:/comment.php 需要修改的位置大概在末尾最后一个方法,位置 112 行。 也可以在需要显示评论信息的位置插入下方嵌入点代码即可,我是把 IP 信息放在 agent 旁边了,这样不是特别显眼。 <?php echo curl_tencentlbs_ip($comments->ip); ?> 以下示例代码从 96 行到尾部 <?php function threadedComments($comments, $options) { ?> <li class="comment-list__item"> <div class="comment-list__item-contain" id="<?php $comments->theId(); ?>"> <div class="term"> <img width="48" height="48" class="avatar lazyload" src="<?php joe\getAvatarLazyload() ?>" data-src="<?php joe\getAvatarByMail($comments->mail); ?>" alt="头像" /> <div class="content"> <div class="user"> <span class="author"><?php $comments->author(); ?></span> <?php if ($comments->authorId === $comments->ownerId) : ?> <i class="owner">作者</i> <?php endif; ?> <?php if ($comments->status === "waiting") : ?> <em class="waiting">(评论审核中...)</em> <?php endif; ?> <div class="agent"> <?php joe\curl_tencentlbs_ip($comments->ip); ?> · <?php joe\getAgentOS($comments->agent); ?> · <?php joe\getAgentBrowser($comments->agent); ?></div> </div> <div class="substance"> <?php joe\getParentReply($comments->parent) ?> <?php echo _parseCommentReply($comments->content); ?> </div> <div class="handle"> <time class="date" datetime="<?php $comments->date('Y-m-d'); ?>"><?php $comments->date('Y-m-d'); ?></time> <span class="reply joe_comment__reply" data-id="<?php $comments->theId(); ?>" data-coid="<?php $comments->coid(); ?>"> <i class="icon fa fa-pencil" aria-hidden="true"></i>回复 </span> </div> </div> </div> </div> <?php if ($comments->children) : ?> <div class="comment-list__item-children"> <?php $comments->threadedComments($options); ?> </div> <?php endif; ?> </li> <?php } ?>代码经过二次改造,适配Joe再续前缘版 其他博客主题,应该也可以适用。