1.BKM • 57期 — 分享常用的办公学习小工具(六)
2.windows之google protobuf安装与使用
3.A Tour of xmake - 06. 测试发布
BKM • 57期 — 分享常用的办公学习小工具(六)
欢迎来到我的分享空间,我是凉拌谢耳朵。今天,我将为大家带来第六期的办公与学习小工具推荐,重点关注本地软件、集成网站、型号查询源码传输工具、本地软件、远程控制、数据同步、浏览器插件等。 由于这是一次个人分享,内容可能并不全面,期待大家能够补充分享更好的工具,让我们共同构建一个更丰富的内容库。 让我们一起探索以下推荐工具: (一) 手机程序 apk-downloader:<a href="apps.evozi.com/apk-down...,用于下载Google Play上的应用程序。 (二) 集成网站 下1个好软件:<a href="实用好玩有趣的安卓、Windows、iOS、macOS、Linux软件的平台。 Awesome-Windows:<a href="GitHub - Awesome-Windows/Awesome: An awesome & curated list of best applications and tools for Windows.,提供Windows的闪烁之光65000级源码最佳应用和工具列表。 Downloadly:<a href="downloadly.net/,全面的免费软件下载站。 VXAT:<a href="VXAT - 精品资源免费下载,提供免费软件、源码、优惠活动、技术教程等资源。 (三) 传输工具 不限量网盘:<a href="TransferKit - Decentralized File Transfer,提供无限量在线云存储。 空投:<a href="AirPortal 空投快传,支持跨设备传输文件,无需注册。 在线文件传输和收集:<a href="文叔叔 - 传文件,找文叔叔(永不限速),永不限速的在线文件传输服务。 文件传输-wormhole:<a href="wormhole.app/,提供高速传输解决方案。 速盘:<a href="速盘speedpan,无需登录的百度网盘下载工具。 motrix:<a href="Motrix,免费开源的磁力下载工具,包含网盘内容。 (四) 本地软件 火萤酱:<a href="火柴官网(原火萤酱)-文件秒搜|局域网聊天_电脑必备|效率神器,edge社交电商源码快速查找本地文件、启动应用、网页直达等。 Cold Turkey Blocker:<a href="Cold Turkey Blocker,帮助专注办公和学习,屏蔽干扰。 KeymouseGo:<a href="GitHub - taojy/KeymouseGo: 类似按键精灵的鼠标键盘录制和自动化操作 模拟点击和键入 | automate mouse clicks and keyboard input,Windows下的自动化工具。 Listary:<a href="File Search & App Launcher,功能强大的文件搜索工具,支持程序快速启动。 anytxt:<a href="AnyTXT Searcher,免费的本地文档和文本搜索软件。 everything:<a href="voidtools,快速本地文件搜索工具。 One Commander:<a href="文件管理软件 One Commander v3..4.0 绿色免费版,双窗文件管理神器,功能强大,免费。 EAGLEGET:<a href="EagleGet_官方电脑版_下载,免费下载神器,体积小,功能强大。mac编译比特币源码 Quicker:<a href="Quicker软件 您的指尖工具箱 - Quicker,小软件,功能丰富,提升效率。 SpaceSniffer:<a href="SpaceSniffer_官方电脑版_下载,磁盘分析清理工具,体积小,功能强大。 QuickLook:<a href="github.com/QL-Win/Quick...,快速预览文件,只需空格键。 Fosshub:<a href="FOSSHUB,免费开源电脑软件。 Q-Dir:<a href="Q-Dir,资源管理神器,同时打开多个磁盘窗口,操作不受影响。 Captura:<a href="github.com/MathewSachin...,免费录屏软件,功能强大。 Folder Painter:<a href="Folder Painter,实用的文件夹颜色和图标样式更改工具。 (五) 远程控制 ToDesk:<a href="ToDesk远程控制软件-免费安全流畅的浓缩溯源码燕窝供应远程连接电脑手机,简单、实用的远程控制软件。 幕享:<a href="幕连幕享 - 全平台免费无线投屏软件,免费无线投屏工具,支持全平台。 (六) 数据同步 Syncthing:<a href="github.com/syncthing/sy...,开源文件同步工具,多设备实时同步。 (七) 浏览器插件 油猴脚本:<a href="油猴tampermonkey官网_油猴插件手机版油猴插件下载,浏览器插件,提供多种强大功能。 侧边翻译:<a href="一个简单使用的翻译插件,支持Chrome、火狐等主流浏览器,用于快速翻译网页内容。 请关注微信公众号BIM技术应用交流,回复“知识库”获取原始思维导图。windows之google protobuf安装与使用
本文将通过创建一个简单的“地址簿”示例应用程序来展示如何使用 Google Protocol Buffer(简称 Protobuf)。将从以下几点来介绍prototbuf:1.安装 2.定义protobuf消息格式 3.编译protobuf 4.protobuf API 5.读写protobuf消息
1.安装
在Windows下安装protobuf很简单,只需下载protoc-3.4.0-win.zip压缩包然后解压,会看到该bin文件夹下有一个名为protoc.exe的应用程序。这个就是本文要使用的编译器。
2.定义protobuf消息格式
创建一个非常简单的“地址簿”应用程序,可以在文件中读取和写入人员的联系人详细信息。地址簿中的每个人都有姓名,ID,电子邮件地址和联系电话号码。要创建地址簿应用程序,需要从.proto文件开始。.proto文件中的定义很简单:为要序列化的每个数据结构添加消息,然后为消息中的每个字段指定名称和类型。
下面是.proto定义的消息文件addressbook.proto,包含消息的定义以及字段的类型和描述。
syntax = "proto2"; package tutorial; message Person { required string name = 1; required int id = 2; optional string email = 3; enum PhoneType { MOBILE = 0; HOME = 1; WORK = 2; } message PhoneNumber { required string number = 1; optional PhoneType type = 2 [default = HOME]; } repeated PhoneNumber phones = 4; } message AddressBook { repeated Person people = 1; }
每个元素上的“= 1”,“= 2”标记是标识该字段在二进制编码中的唯一“标记”。标记号1-相对于比较大的数字只需要一个字节进行编码,因此作为优化,可以决定将这些标记号用于常用或重复的元素,将标记号和更高的标记号留给不太常用的可选元素。重复字段中的每个元素都需要重新编码标记号,因此重复字段特别适合此优化。
3.编译protobuf
运行protobuf编译器protoc.exe对.proto进行编译,编译命令格式如下:protoc -I = $ SRC_DIR --python_out = $ DST_DIR $ SRC_DIR / addressbook.proto。其中,$ SRC_DIR是源目录(应用程序的源代码所在的位置),$ DST_DIR 是目标目录(希望生成的代码在哪里)。
4.protobuf API
为您的所有消息,枚举和字段以及一些神秘的空类生成特殊描述符,每个消息类型对应一个Python类。可以使用Python类,就好像它将Message基类的每个字段定义为常规字段一样。例如,可以写代码,创建并填充protobuf类的实例,然后将它们写入输出流。
5.读写protobuf消息
使用protobuf类,可以尝试将个人详细信息写入地址簿文件。需要创建并填充protobuf类的实例,然后将它们写入输出流。这是一个程序(文件名为write.py),它从数据文件中读取AddressBook类,根据用户输入添加一个新Person到AddressBook中,然后再将新AddressBook写回文件。
最后会在data.pb文件中产生结果,然后在命令窗口下执行以下命令,会出现输出。到此,关于protobuf的简单使用已经介绍完了,如果想了解更多有关protobuf的使用,请浏览google protocol buffer官网。
A Tour of xmake - . 测试发布
为了确保工程的正式发布,xmake推荐设置工程信息,例如版本号。这将自动生成配置变量如${ VERSION}、${ VERSION_MAJOR},并考虑了Git版本管理的特性。在Windows系统中,可以通过编写resource文件并加入工程中来给产生的二进制和动态库添加版本信息。
以google test框架为例,构建一个C++库结构。在mylib.cpp中定义了函数,mylib.def文件用于生成动态链接库,并在不声明__declspec(dllexport)的情况下实现。使用xmake中的add_files接口将mylib.def加入项目。测试文件夹内包含测试文件,add.cpp和distract.cpp分别进行了测试。xmake.lua文件用于配置测试过程,如设置运行命令和分组。测试后,若未发现问题,即可准备安装和发布。
安装过程遵循一般约定,将二进制文件、库文件、头文件等分别存放于bin、lib、include目录。xmake命令用于安装项目,指定安装路径,区别于cmake等构建系统。执行安装命令后,目标生成的文件将按约定路径安装。
头文件的安装使用add_headerfiles语句,匹配指定目录下的所有.h文件。通过设置prefixdir选项,可以保持目录结构或将其放入特定子目录。add_headerfiles语句不仅用于安装,部分IDE项目生成器还用于项目可见性设置。如果仅用于生成项目,希望避免安装头文件,可以使用add_headerfiles(, { install = false})选项。
生成配置文件是导出给使用其他构建系统的项目使用的关键步骤。xmake提供pkg-config和cmake配置文件的生成,用于将目标配置为其他构建工具可识别。根据构建工具文档使用这些配置文件。
对于头文件之外的安装文件,使用add_installfiles接口。它与add_headerfiles的区别在于,文件将直接安装到指定目录下,而非默认的include文件夹。例如,可以用于安装文档或其他数据文件。
当目标的库和二进制文件的存放路径不符合约定,或有特定的安装过程需求时,可以使用on_install语句重载安装过程。这允许根据安装目录调整文件位置,例如将生成的库文件安装到自定义的mylib文件夹。若需要深入理解xmake内部实现,可以通过搜索xmake源代码或在线编辑器查找相关实现代码。