Mac下发布Qt应用程序(转)

Qt安装for MAC Qt安装for MAC 对于Mac用户,首先应下载Xcode(下载过的请忽略) 然后打开终端安装homebrew /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 好目前准备工作就算是完成了。 1.终端安装Qt brew install qt 此步... 阅读详情

Qt编写的应用发布到用户手里,同时也要把Qt库一起打包给用户。方法有很多。

1. 简单又麻烦的办法,静态编译Qt

简单是因为静态编译的Qt库会随着应用一起发布,麻烦是我们必须自己编译静态的Qt。而且,很多情况下我们不仅是要使用Qt,还有很多其它的库,如果每一个都静态编译,我们的执行文件就太巨大了。所以简单的应用,静态编译可能是好的,但是,比较大的项目,这种方法就不推荐了。

2. 好又不麻烦的办法,使用Frameworks

Mac中的GUI应用必须以Bundle的形式运行,所谓Bundle,是一个以".app"结尾命名的文件夹,系统自动识别它为一个应用包,应用所有的东西(执行文件、链接的动态库、资源文件等等)都在里面了,打开应用直接"open myApp.app"就可以了,安装的时候直接把Bundle拖到Finder里就行了。卸载的时候直接把Bundle删除就行了。多让人省心。

Bundle的结构如下图:(从Qt文档里借来的)

Mac下发布Qt应用程序(转) - ♂苹果 - 眼睛想旅行

 

我们如果要随着我们的应用一起发布Qt库,比较合理的就是把所有需要的Qt库都复制到Frameworks目录中。

使用otool可以查看一个应用都链接了哪些动态库

复制代码
$ otool -L myApp.app/Contents/MacOS/myApp 
myApp.app/Contents/MacOS/myApp:
    libqxmpp.0.dylib (compatibility version 0.7.0, current version 0.7.4)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
    QtWebKit.framework/Versions/4/QtWebKit (compatibility version 4.9.0, current version 4.9.3)
    QtXml.framework/Versions/4/QtXml (compatibility version 4.8.0, current version 4.8.3)
    QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.3)
    QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.3)
    QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.8.0, current version 4.8.3)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1669.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
复制代码

我们用了QtWebKit、QtXml、QtCore、QtGui、QtNetwork,然后挨个Copy吧。

$ cp -R /path/to/Qt/lib/QtCore.framework  myApp.app/Contents/Frameworks
......
......

真的悲惨到到自己手工去复制?当然不是,我们都是懒人啊,Qt自身带了一个macdepolyqt的神器,一切就变得简单了。

$ macdeployqt myApp.app
  ERROR: no file at "/usr/lib/libqxmpp.0.dylib" 

qxmpp是我们用的一个三方库,并不在/usr/lib下,找不到并不奇怪,怎么才能让macdeployqt找到这个三方库呢?

Mac下是用DYLD_LIBRARY_PATH来寻找动态库的,类似于Linux下的LD_LIBRARY_PATH。otool -L输出的信息,其实是保存在编译好的可执行文件里的。libqxmpp.0.dylib没有指定绝对路径,系统会到DYLD_LIBRARY_PATH中去寻找它,macdepolyqt并不理会DYLD_LIBRARY_PATH,所以,我们只好将libqxmpp.0.dylib这一条修改成它的绝对路径,让macdeployqt可以找到它。

install_name_tool -change "libqxmpp.0.dylib" "/opt/library/qxmpp/lib/libqxmpp.0.dylib" myApp.app/Contents/MacOS/myApp

如此以后就没问题了

复制代码
$ macdeployqt fytclient.app

$ otool -L myApp.app/Contents/MacOS/myApp 
myApp.app/Contents/MacOS/myApp:
    @executable_path/../Frameworks/libqxmpp.0.dylib (compatibility version 0.7.0, current version 0.7.4)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
    @executable_path/../Frameworks/QtWebKit.framework/Versions/4/QtWebKit (compatibility version 4.9.0, current version 4.9.3)
    @executable_path/../Frameworks/QtXml.framework/Versions/4/QtXml (compatibility version 4.8.0, current version 4.8.3)
    @executable_path/../Frameworks/QtCore.framework/Versions/4/QtCore (compatibility version 4.8.0, current version 4.8.3)
    @executable_path/../Frameworks/QtGui.framework/Versions/4/QtGui (compatibility version 4.8.0, current version 4.8.3)
    @executable_path/../Frameworks/QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.8.0, current version 4.8.3)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1669.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 169.3.0)
复制代码

这时候再看otool的结果,qxmpp以及Qt的动态库都指向了Bundle里Frameworks目录下了。@executable_path顾名思义就是应用的执行目录,也就是myApp.app/Contents/MacOS

发布ios QT程序

用 lipo 下令裁剪出需要的 architecture

    iOS 上的 framework 和 .a 库一般会同时支持多个 architecture, 比如 i386, armv7, armv7s 等。
    为了减小程序的尺寸,可能需要裁剪掉不需要的 architecture, 这时就需要使用 lipo 命令给程序瘦身。
     Step1: 查看目标库文件支持的 architecture, 两个选择
                1.1 lipo -info 目标库文件
                 1.2 file 目标库文件
    Step2: 生成只支持一个 architecture 的 库文件
                 lipo 目标库文件 -thin 目标architecture 目标文件名
                 eg:    lipo MVC -thin i386 MVC.i386
                 eg1:    lipo MVC -thin armv7 MVC.armv7

       最后,删掉旧的库文件,把目标库文件改成原来的名字,进行替换即可。

另一个发布QT程序到mac app store的文章:

http://www.sollyu.com/mac-qt-program-released/

基于Qt开发的应用程序进驻Mac App Store

最近摸索着将一个基于用Qt开发的App发布到Mac App Store,在网上查找相关资料的时候,发现很多文档都过期了,要有一些修改,所以想记录下来,希望能帮助有需要的同学,让他们少走一些弯路。

这里我们假设你已经有一个Mac开发者账号,成功安装好了相关证书,并且已经准备好你的App了(release版,但未部署)。

第一步:打包

在Mac下,对基于Qt应用程序的部署,官方文档这里已经讲解很详细了

我用的是framework的方式,大致意思就是要把所依赖的库和插件拷贝到App的Bundle里,然后修改程序的依赖链接,让其启动时加载的是Bundle里的库和插件。

Qt自带的macdepolyqt工具能够很方便的帮助你实现这一目的。

虽然很多人觉得这个工具并不完美,会把一些实际上用不到的插件和库也会拷贝进去

这是因为它本身的判断方式,比如你的程序用到了QtSql.framework, 那么它就会把所有的sqldrivers目录中的插件都拷贝过来,而不管你的程序有没有用到,这让你的程序变得臃肿)

但是对于初学者,我相信你更喜欢用这种方式,因为它相当简单。

假如你是一个完美主义者,对自己的App有着严格的要求,那么建议你自己写Shell Script去把程序用到的Framework和Plugins都拷贝进去,然后修改依赖链接。

Xcode自带指令帮你查看程序依赖哪些库,库又依赖了哪些库,插件依赖了哪些库,如果想要知道程序是如何加载插件的,可以查阅这里,当然也有指令修改这些依赖。这些都可以在上面提供的链接里找到。

第二部:sandbox 和 info.plsit文件

Windows程序员可能不知道什么是sandbox。赶紧恶补一下,可以去google一下或者看下Apple的官方文档

你要有一个.entitlements的文件(为第三步做准备),里面就是你需要的sandbox权限(其实就是个xml格式的文件,记录着一些键值对,你可以用Xcode新建一个项目,然后勾选需要的sandbox权限,生成的.entitlements文件就可以拿过来用了)。

如果没有勾选相关的权限,在签名之后是无法正常使用相关功能的。

这里说的info.plist文件是整个程序的,在App所在目录/Contents下和后面说的info.plist文件不是同一个(但作用都是一样的)。

Qt默认生成的info.plist 文件是不符合上Mac App Store要求的,需要额外加一些键值对,比如能运行的最低系统版本信息等等。详情可以参看Apple的文档。

第三部:签证书

在完成上一步后,所有用到的库和插件都已经拷贝到程序所在的Bundle里面了。

可以按照这里的说明进行Code Signing,但是这里需要注意的是,

在签证书之前必须手动的把每个Framework下面的info.plist文件考到相应的目录下

以QtCore.framework为例,你需要将Qt安装目录/5.2.0/clang_64/lib/QtCore.framework/Contents/info.plist拷贝到App所在目录/Contents/Frameworks/QtCore.framework/Resources/, 否则在给Framework签证书的时候会失败,当然会导致最后给整个Bundle签证书的时候失败。签证书的顺序应该是先签里面的Framework 和Plugins,最后签整个Bundle。

签成功之后,除了Plugins,每个Framework的子目录内和Contents目录下都会有一个_CodeSignature的文件夹。

Ps:在成功之后不要忘了保存你所用到的命令行,就可以做一个脚本了,下次在打包部署的时候就方便多了。这里是我用到的脚本,大家可以下载下来参看。欢迎大家给我提意见和建议。

如何给Qt 开发的应用程序加图标  

这个应该是windows系统下的方法.
首先准备个ICO图标。例如:myappico.ico
用写字版新建个文件
里面就写一行:
IDI_ICON1           ICON   DISCARDABLE   "myappico.ico"
保存改名为 myapp.rc并把它和你的图标myappico.ico一起复制到你的QT工程项目的目录。
用写字版打开你的QT工程文件(如 "myapp.pro" ),在里面最后新添一行
RC_FILE  = myapp.rc
如何在 Mac 上解决 Qt Creator 安装后应用程序无法找到的问题 这篇博客详细记录了打开Qt Creator的过程,并提供了多种解决方法,希望能帮助遇到类似问题的开发者。 阅读详情

相关推荐

让Qt应用程序跑在Android上

让Qt应用程序跑在Android上         Qt最大的优势就是跨平台,一次性开发的Qt应用程序,可以跑Windows、跑linux、跑MAC……如今移动平台android操作系统如此火爆,Qt当然不能放过对android的支持,对了,还有iphone/ipad。而且,c++开发者们,想做android开发也不是问题了! 但是目前国内研究qt for android 的人真是太少了,今天我使

念茜的博客 9万+

Qt在Mac系统下发布程序

1.Qt安装 直接下载安装包安装,在安装的过程中会提示安装xcode,选择安装就行。 不用特地去找xcode的安装包。 2.编译好Qt程序后,发布Qt程序。 目前我用的是Qt5.12.9版本,用了第三方的库。 在发布时,不需要自己手动把第三方的库拷贝到.app文件夹(也有可能是因为我用brew安装的缘故,brew这个工具的安装看这里) 2.1对于不是qml程序,直接这样: #需要先cd到你项目的编译目录下,然后再执行下面的语句 /Users/my/Qt5.12.9/5.12.9/clang_64/bin/m

joyopirate的博客 1234

mac安装QT及QT基本使用

mac安装QT及QT基本使用 目录 QT安装 QT基本使用 1. QT安装 根据需求下载对应QT版本,地址:http://mirrors.ustc.edu.cn/qtproject/archive/qt/ 打开下载好的安装进行安装

努力努力再努力L 9379

qt for mac 开发的程序怎么签名发布

在Mac系统下开发的Qt程序,如何签名发布呢

chenyijun的专栏 2540

Qt 5在windows和Mac下的安装使用

Qt是一个跨平台的C++图形用户界面应用程序框架 Qt之所以跨平台是因为他使用不同操作系统下的编译器,在Windows中可以使用VS系列和MinGW,在Mac下使用gcc UI 点击事件关联 事件循环 Qt在Windows中的(使用MinGW)首先下载Qt(我用的是5.3版本),我的环境是windows XP Qt下载地址参考以下: http://blog.youkuaiyun.com/friendan/

我是要成为海贼王的男人! 7265

Mac下QT开发环境搭建详细教程

Mac下QT开发环境搭建详细教程

世界那么大,我想去看看~【随心更新,看世界去了😄】 1万+

在Mac系统下发布Qt程序详细教程

Mac系统下发布Qt程序详细教程

chenyijun的专栏 2617

手把手教你用Kali+字典爆破WiFi密码:从抓包到破解的完整流程

本文提供了一份详尽的无线网络渗透测试实战指南,重点讲解如何使用Kali Linux和Aircrack-ng套件进行WiFi安全评估。内容涵盖从硬件选型(如RTL8812AU网卡)、驱动配置、监听模式设置,到使用airodump-ng扫描抓包、捕获WPA握手包,以及利用字典进行离线破解的完整流程。同时强调了在授权环境下进行安全测试的重要性,并给出了相应的网络加固建议。

weixin_28568819的博客 1675

Mac上Qt安装和配置教程_mac qt

频,并且后续会持续更新**

2401_84253380的博客 6181

Xilinx SDK调试与FPGA硬件验证全流程解析

本文详细解析了从Vivado导出硬件到Xilinx SDK进行调试与FPGA硬件验证的全流程。重点阐述了正确导出包含bitstream的硬件平台、创建合适的SDK工程、配置Debug会话以编程FPGA,并介绍了串口验证、自定义IP测试以及使用ILA进行软硬件联合调试的高级技巧,帮助开发者高效完成FPGA系统的软硬件协同开发与问题排查。

weixin_28327051的博客 311

DisplayPort 1.4扰码原理与16位并行LFSR实现

DisplayPort物理层信号完整性依赖于数据扰码技术,其本质是通过线性反馈移位寄存器(LFSR)对传输数据进行伪随机化处理,以改善频谱分布、抑制低频能量堆积、提升时钟恢复能力并降低EMI辐射。该技术广泛应用于高速串行接口如DP、PCIe和USB,核心在于确定性伪随机序列生成与收发端同步。DisplayPort 1.4强制要求符合ANSI X3.230标准的16级LFSR,并在8b/10b编码后执行扰码;而传统串行实现难以满足21.6Gbps速率下的时序约束,必须采用并行展开结构——将16拍移位压缩为单周

weixin_29192211的博客 313

Qt在macOS(含第三方库)应用程序打包发布流程

Qt在macOS(含第三方库)应用程序打包发布流程 若不含第三方库只需要执行步骤一即可。 1. 生成安装包 macdeployqt utilTest.app -dmg // 打包release版的app 在qt生成的release工程目录下打开终端运行上述命令 2. 查看依赖的动态库及其路径 3. 修改依赖的动态库的路径 install_name_tool -change "libtest.dylib" "@rpath/mylib/libtest.dylib" Test.app/Contents/M

qq_38502914的博客 3695

浅析ArcGis中的软件——ArcMap、ArcScene、 ArcGlobe、ArcCatalog

ArcMap:是集空间数据显示、矢量数据编辑、冲突数据检查(拓扑检查)、查询检索(地理编码)、统计(字段属性表)、报表生成、空间分析(ArcGIS Spatial Analyst)和高级制图(制图表达)等众多功能干一体的桌面应用平台软件。而且提供所见即所得的符号编辑器,令用户可以随心所欲地生成任意复杂的点、线、面符号。所支持的空间数据格式包括Arclnfo coverages、ESRI shapefiles、ArcSDE lavers、DXF、DWG、DGN、常见的图像格式、GRIDs、TINs等。

lxlmycsdnfree的博客 6563

Qt 程序打包发布总结

1.  概述  当我们用QT写好了一个软件,要把你的程序分享出去的时候,不可能把编译的目录拷贝给别人去运行。编译好的程序应该是一个主程序,加一些资源文件,再加一些动态链接库,高大上一些的还可以做一个安装文件。 QT开发的程序发布的时候经常采用两种方式: l  静态编译,可生成单一的可执行文件。 l  动态编译,需同时附上需要的dll文件。 2.  发布准备 不管采用哪种方式,首

liuyez123的博客 7万+

NCCL 核心集体通信操作深度解析:从原理到优化实践

操作逻辑:若 N 个 GPU 各持有一段数据(大小为 S),通信后每个 GPU 会持有所有 N 段数据(总大小为 N×S)。典型场景:多卡推理结果聚合、模型并行中间结果同步。操作逻辑:N 个 GPU 各持有数据,通过归约(求和、取平均等)运算后,所有 GPU 获得相同结果。典型场景:数据并行训练的梯度聚合(如 SGD 优化器)。操作逻辑:N 个 GPU 各持有 N 份数据分片,通信后每个 GPU 获得所有 GPU 的对应分片。典型场景。

jundao1997的专栏 679

手把手教你学基于 Linux 的 NPU 固件开发-第 10 讲:可靠性设计(RAS)——让系统坚如磐石错误检测、纠正与上报机制(ECC、Parity)

组件推荐保护机制备注HBM/DDRScrubbing必须开启,定期巡检片上 SRAMECC(权重/激活值),Parity(指令)权衡面积与可靠性计算单元ABFT或DMR(关键路径)防止计算逻辑错误片上网络CRC重传保证数据传输完整性系统软件AER 上报CE 监控自动恢复闭环管理,杜绝 SDC运维策略预测性维护Checkpoint变被动为主动核心心法(信任硬件,但必须验证。在纳米尺度下,错误是必然发生的物理现象。

MHD0815的博客 91

mac 下的应用程序发布 及 打包

其实这个问题在网上能搜到大把的解决方案。大家的统一答案都是 otool -L yourapp.app/Contents/MacOS/yourapp 根据输出信息在运行 install_name_tool install_name_tool的使用方法在这里 比较复杂的是当依赖了很多第三方库,尤其是向QT这样的库的时候。打包那叫一个麻烦啊。 QT有个官方的文档告诉你如何手动一步步打包程序,还

乐儿爷的专栏 7829

基于Simulink的异步电机定子磁链定向控制(SFOC)仿真

本文带你从零构建了异步电机SFOC系统​ 的完整Simulink仿真模型,实现了:✅ 搭建异步电机、逆变器、风机负载的主电路与传感器模型;✅ 用MATLAB Function实现定子磁链观测(电压模型)、坐标变换、双闭环PI控制;✅ 验证SFOC在转速跟踪(响应0.2s、超调4%)、转矩响应(恢复0.15s)中的高性能;✅ 对比RFOC,明确SFOC在参数鲁棒性(转子电阻+50%时波动<2%)上的独特优势;✅ 理解SFOC“定子磁链定向+解耦控制”的核心思想(低成本高鲁棒性驱动的工程实现)。

xiaoheshang_123的博客 389

(转)在Mac系统下发布Qt程序详细教程

最近在Mac系统下用Qt写了个程序,现在要发布,搞了很久,终于搞定,下面记录下发布时候遇到的一些问题和一些经验 首先有以下几点需要注意: 1,你的程序是否包含了第三方库?比如我这次发布的程序,程序就调用了第三方库; 2,若没包含第三方库,在Mac下发布Qt程序还是很容易的,直接使用macdeployqt命令即可; 下面详细说明下: 1,使用macdeployqt打包程序,比如我编译后的程序名字叫B...

乌托邦 2574

地图自定义编码CSV转换成ini文件

创 建 schema.ini 文件:有时,当您尝试使用 .csv 文件将自定义地理信息导入 Tableau 时,您可能会看到“无法使用.csv,因为它不包含唯一列”错误消息。这是因为您的 .csv 文件可能包含数值数据,例如数值邮政编码。对于新的地理角色,Tableau 将只接受文本字段。但是,您可以创建一个 schema.ini 文件,以指示 Tableau 应将您要导入的数值字段视为文本字段。...

wenyusuran的专栏 1975

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Qt 应用程序打包与发布技巧

Qt跨平台开发的核心原则是优先使用Qt原生API,保持代码平台无关性,并遵循最小权限原则。通过统一构建环境(推荐CMake)和集成CI/CD工具实现多平台编译测试。针对平台差异,可结合条件编译、抽象基类和资源适配策略,如使用Q_OS宏隔离平台代码,封装系统通知接口,按需加载图标资源等。本文提供了从环境配置到代码实现的完整跨平台开发方案,包括构建脚本示例、平台抽象层实现和资源管理技巧,帮助开发者高效应对不同OS的兼容性问题。

编程与实战的博客 2014

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Mac Big Sur/Mac11.0 安装Qt与运行环境 以及app打包发布dmg

Mac Big Sur/Mac11.0 安装Qt与运行环境引言Mac Big SurQt 5.15Qt的下载Qt安装本地环境变量的配置编译程序打包发布结语 引言 最近苹果发布了新的操作系统 11.0 使用Qt的小伙伴会发现之前的项目可能不能正常运行起来,因为已经不支持Qt11.5版本之前的界面显示了。索性直接下载更新了Qt,并把步骤和方法与大家分享一下。 Mac Big Sur 这次Mac更新比较大,虽然有很长时间测试,但依旧使一些软件出现运行不稳定等问题。 Mac Big Sur这次UI界面进行了大幅

scz653037148的博客 5185

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

QT 实现Dock应用程序点击 ---Mac OS X

在mac 下应用场景如下: 1、点击关闭窗口按钮时,不退出应用。 2、点击dock应用图标时候显示应用程序住窗口。 应用的显示和隐藏不是本文重点,实现点击dock应用图标在QT获取对应通知是本文关键。 在写之前参考了 https://stackoverflow.com/questions/15143369/qt-on-os-x-how-to-detect-clicking-the-app-dock-icon 但是编译通不过。 修改一些编译错误,能正常工作。 1、编译开关和工程配置。 在xc

scribbler的专栏 1787

Qt for Mac:发布程序(widgets和quick2)

当你用Qt开发好程序后,是不是会很期待将你的成果分享给你的小伙伴 可是Qt的库并不是OS X标配的,所以我们要自己去复制库到app包里,才可以让app在其他未安装Qt的电脑上运行。 比较幸运的是,Qt为我们提供了macdeployqt工具,借助于此,我们完成一键发布,几乎是所有平台中最简单的。 注:我电脑配置了Qt的bin环境,所以可以直接使用macdeployqt 如果没配置,可

Jason’s home 9415

Mac下发布Qt应用程序

Qt编写的应用发布到用户手里,同时也要把Qt库一起打包给用户。方法有很多。 1. 简单又麻烦的办法,静态编译Qt 简单是因为静态编译的Qt库会随着应用一起发布,麻烦是我们必须自己编译静态的Qt。而且,很多情况下我们不仅是要使用Qt,还有很多其它的库,如果每一个都静态编译,我们的执行文件就太巨大了。所以简单的应用,静态编译可能是好的,但是,比较大的项目,这种方法就不推荐了。 2.

imxiangzi的专栏 3395

史上最详细mac安装Qt教程

史上最详细mac安装Qt教程,小白看过来! 这是一篇非常适合Qt入门小白的的安装Qt教程,因为这学期我们小组的一个关于高速救援的项目要用到Qt与web进行交互式展现相关的图像,由于没有MSVC这个插件,所以我只好选择重装Qt,这次没有第一次装那么困难,毕竟经历过一次,这次我以这篇博客记录下来,分享给大家! 首先,进入QT官网 ...

BeiXi's Blog 1万+
上一篇: python读写protobuf
下一篇: 基于Qt的跨平台应用开发(转)
woodcol
博客等级 码龄19年 288粉丝 429原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值