编译libpqxx 3.0 @ winxp + vc9

跨平台实战:libpqxx在Windows与Linux下的编译与动态库生成 本文详细介绍了libpqxx在Windows与Linux平台下的编译与动态库生成实战指南。作为PostgreSQL的C++接口库,libpqxx提供了高效的数据库操作能力。文章涵盖从环境配置、依赖解决到跨平台CMake配置的全流程,特别针对动态库生成和常见问题提供了解决方案,帮助开发者快速实现跨平台数据库应用开发。 阅读详情

libpqxx编译真要费些周折,这一点应该多向前辈libpq学习才对。

需要的源代码包:1. postgresql-8.3.5;2. libpqxx 3.0
编译时,使用vc的命令行方式。对于vc9,请执行VC安装目录下的vcvarsall.bat,其他版本的vc可能会有所不同。

以下为编译步骤:

1) 解包。下面叙述中,PGSRC代表postgresql-8.3.5解压后的根目录,LIBPQXXSRC代表libpqxx3.0解压后的根目录。

2) 编译libpq。那是相当的简单!cd到PGSRC/src/interfaces/libpq ,执行命令 nmake /f win32.mak ALL RELEASE=1即可。其中,RELEASE=1可以省略,因为默认就是这个。但如果要编译DEBUG,则必须指定DEBUG=1,且二者不能同时指定。至于ALL,就不用多说了吧,看下win32.mak中的对应部分即可,类似的,还有CLEAN。

3) 编译libpqxx。相比较与libpq,简直有点BT,不过耐心看intall、readme等文件后,也就可以搞定了:
a. 将LIBPQXXSRC/win32下的vc-libpqxx.mak文件拷贝到LIBPQXXSRC下;
  b. 将LIBPQXXSRC/win32下的common-sample文件改名为common,并将位于尾部的PGSRC变量修改为与实际位置对应的位置;
  c. 将/config/sample-headers/compiler/SunStudio-8/pqxx下的config-internal-compiler.h、config-public-compiler.h两个文件拷贝到LIBPQXXSRC/include/pqxx目录中;
  d. 将LIBPQXXSRC/config/sample-headers/libpq/8.3/pqxx下的config-internal-libpq.h文件拷贝到LIBPQXXSRC/include/pqxx目录中;
  e. 修改LIBPQXXSRC/include/pqxx/config-internal-compiler.h文件为:
  1. #define HAVE_SYS_TYPES_H 1
  2. //#define HAVE_UNISTD_H 1
  3. /* #undef PQXX_HAVE_COUNT_IF */
  4. #define PQXX_HAVE_IMBUE 1
  5. #define PQXX_HAVE_LOCALE 1
  6. //#define PQXX_HAVE_SLEEP 1
  7. #define PQXX_HAVE_STRING_CLEAR 1
  8. //#define PQXX_HAVE_SYS_SELECT_H 1
  9. /* #undef PQXX_SELECT_ACCEPTS_NULL */
  10. #define PQXX_HAVE_QUIET_NAN 1
  f. cd到LIBPQXXSRC目录下执行 nmake /f vc-libpqxx.mak ALL 即可。其中的ALL可换作clean、dll、static再加debug、release组合等,具体查看 vc-libpqxx.mak 即可知晓。

    
使用libpqxx访问PostgreSQL数据库(mingw编译libpqxx) 编译前准备    1. 安装mingw 安装mingw(不管是直接安装mingw还是其他如code::blocks附带安装的mingw),输入:gcc -v可显示如下图的版本信息,我的版本是mingw32  4.9.2。 2. 安装postgresql postgresql各个版本下地址:http://www.enterprisedb.com/products-services-tra 阅读详情

相关推荐

libpqxx 库的编译

对libpqxx版本3.1.1的编译,postgresql-devel包包含编译C或C ++应用程序所需的头文件和库,它们将直接与PostgreSQL数据库管理服务器和ecpg Embedded C Postgres预处理器进行交互

libpqxx的编译与使用【PostgreSQL】

【代码】libpqxx的编译与使用【PostgreSQL】

晓琴儿 1542

libpqxx:PostgreSQL官方C ++客户端API

libpqxx 欢迎使用libpqxx,这是PostgreSQL数据库管理系统的C ++ API。 主页: : 在Github上找到libpqxx: : 阅读文档的文档: : 编译此程序包需要安装PostgreSQL-或至少安装C头和库以进行客户端开发。 该库基于PostgreSQL标准C API libpq构建,尽管您的代码不会引起注意。 如果您直接从Git存储库获取代码,则master分支包含当前的开发版本。 要获取已发布的版本,请查看为该版本标记的修订。 例如,要获取版本7.1.1: git checkout 7.1.1 升级说明 7.x版本需要C ++ 17。

04-windows环境下编译libpqxx

04-windows环境下编译libpqxx1. libpqxx简介2. 编译环境搭建2.1 PostgreSql下载安装2.2 libpqxx下载2.3 编译前的准备2.3.1 修改配置文件2.3.2 头文件拷贝2.4 编译 1. libpqxx简介 libpqxx是官方发布基于C++语言操作PostgreSQL的API库,简单地讲就是用C++来操作PostgreSQL数据库。 2. 编译环境搭建 2.1 PostgreSql下载安装 PostgreSql下载安装过程略,我安装的是PostgreSql12

HJ的技术博客 3165

【 史上最全】测绘、遥感RS、地信GIS国家级比赛竞赛整理

目录Esri Esri

weixin_43910227的博客 9148

使用运放构建电压跟随器

运放,是运算放大器的简称 运算放大器是用模拟电子器件(如晶体管,场效应管,二极管等)构成的模拟集成电路,其特点是有很高的放大倍数和抗干扰能力,因此可以被设计成各种用途的派生电路,如电压比较器、窗口电路、波形发生电路等等,其中也有电压跟随器。 电压跟随器是一种具有100%电压负反馈的放大器电路,其特点是输出电压的幅度和极性都与输入电压相同,所以叫跟随器。典型线路如图所示: 运放跟随器有输入阻抗高,而输出阻抗低的特性,一般来说,输入阻抗可以达到几兆欧姆,而输出阻抗低,通常只有几欧姆,甚至更低。 在电

Code for Coffee 5万+

libpqxx (PostgreSQL C++ API)——安装使用

相对于ODBC和libpq接口libpqxx做了更高度的封装,但libpq使用的编译器版本和支持C++标准比较激进。从开发效率上应该比ODBC和libpq有较大提升,但性能方面有待于进一步的测试。

夏洛的克 7854

Windows 24H2升级后eNSP AR_40报错40?VirtualBox虚拟化修复指南

虚拟化技术通过Hypervisor在操作系统与硬件间建立抽象层,使虚拟机能够共享物理资源。其核心原理依赖CPU的VT-x/AMD-V指令集,而Windows 24H2对内核隔离与驱动签名的强化会直接占用或拦截这些虚拟化资源。在工程实践中,VirtualBox作为Type-2型Hypervisor,常因内存完整性开启或版本过旧导致虚拟网卡创建失败,进而引发设备启动中断。典型场景包括网络仿真实验、多系统测试环境搭建等。当eNSP的AR_40路由器依赖VirtualBox引擎时,24H2的安全策略变更便会触发错误

weixin_34375251的博客 215

ubuntu下编译libpq和libpqxx库

上篇文章验证了libpqxx可以链接人大金仓数据库,这篇文章尝试自己编译libpq和libpqxx库。

yjkhtddx的专栏 2440

[ensp报错:USG6000V错误代码45解决方案]

[ensp报错:USG6000V:错误代码45解决] [ensp报错:USG6000V:错误代码45解决] 第一种处理方式: ensp的45错误帮助文档里的解决方法:(这里就不说了,上华为爸爸的图) ensp的45错误:如果你的45错误不是描述的那个,可能是ensp与virtualbox不兼容了。 错误描述:具体表现为在virtualbox里没有vfw_usg的条目,虚拟介质管理器里也没有相应的条目: 就是vfw_usg_vdi这个 这种情况下你把ensp卸载重装多少次都没用,原因在两个软件的兼容

weixin_45456536的博客 3万+

LightGBM参数调优实战:从基础到高级技巧

本文深入探讨了LightGBM参数调优的实战技巧。文章从理解其Leaf-wise生长策略的核心逻辑出发,系统性地介绍了分层调参策略:首先调整控制模型结构的参数(如num_leaves),其次优化学习能力参数(如learning_rate),最后通过正则化与随机化参数提升泛化能力。文中还提供了从建立基线到最终微调的完整实战流程与高级避坑指南,帮助读者高效提升模型性能。

i8j9k0l1的博客 261

【C++】Windows使用Visual Studio C++链接云数据库PostgreSQL(沉浸式老爷教学)

关注 “测试开发自动化” 公众号,获取更多学习内容。

测试开发自动化 1584

极智AI | 详解 ViT 算法实现

大家好,我是极智视界,本文详细介绍一下 ViT 算法的设计与实现,包括代码。

极智视界 5603

windows下面编译和使用libpqxx

编译前的准备工作: 首先解压缩postgresql8.0.2,然后编译他的libpq接口,得到相关的lib 然后开始Libpqxx的相关工作 1、首先是环境变量的配置: 1.1、在include的字段里面添加:E:/Software/postgresql/libpqxx-2.5.0/include;E:/Software/postgresql/STLport-4.6.2/stlport; 也就是添

energumen1的专栏 3606

【学术情报智库】目录学的数字化蜕变:从古籍整理到AI知识图谱的跨越

我们既是浩瀚知识的守望者,也是数字智识的开拓者。目录学数字化不是技术替代传统,而是融合创新,让学术的系统性与多样性在新媒介下焕发新的生命。以AI为桥,既要智能链接,也要人文关照——这是对自我文明的深情回应,也是新知时代的庄严约定。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1420

从 30 天试用到企业级落地,2026 年学习和试用 SAP AI 的完整路线图

摘要:SAP AI产品体系存在试用版本与商业版本的边界模糊问题,需区分业务嵌入AI(如Joule)、开发者工具(SAP Build Code)和AI基础平台(Generative AI Hub)三个层级。建议学习路径:1)通过SAP Learning专区掌握理论框架;2)优先使用30天Generative AI Hub基础试用体验模型编排;3)结合90天BTP试用账户开发完整应用。特别注意免费计划已陆续停止,需以最新官方文档为准。开发者应重点关注AI如何与SAP技术栈(CAP、Fiori等)集成,而非单纯功

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 112

Windows环境下编译libpqxx

针对C++语言环境下操作PostgreSQL数据库的API库——libpqxx进行编译,编译环境为windows10、VS2017、X64位库。

img_Guo的博客 3226

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Postgre C++ API libpqxx的使用

libpqxx的编译依赖于PostgreSQL,因此先要安装PostgreSQL(https://www.enterprisedb.com/downloads/postgres-postgresql-downloads),本次安装的低版本13.20的。安装了13.20版本的PostgreSQL(https://www.enterprisedb.com/downloads/postgres-postgresql-downloads)在\src\Release下即可看到.lib文件和.dll文件。

LutionYoung的博客 717

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

libpqxx 常见问题解决方案

libpqxx 是 PostgreSQL 数据库的官方 C++ 客户端 API。它提供了一个高效、易用的接口,使得 C++ 开发者能够方便地与 PostgreSQL 数据库进行交互。libpqxx 构建在 PostgreSQL 的标准 C API(libpq)之上,但开发者在使用时无需直接与 libpq 交互。 ## 新手使用注意事项及解决方案 ### 1. 编译环境配置问题 **问题描述*

gitblog_07990的博客 701

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

探索libpqxx:PostgreSQL的C++接口库

在数据库管理的广阔天地中,libpqxx以其独特的魅力和强大的功能,成为了C++开发者与PostgreSQL数据库系统之间的桥梁。本文将深入介绍libpqxx项目,分析其技术特点,探讨其应用场景,并揭示其与众不同的特性。 ## 项目介绍 libpqxx是PostgreSQL数据库管理系统的C++ API。它构建在PostgreSQL的标准C API——libpq之上,为C++开发者提供了一个高

gitblog_01026的博客 891

PostgreSQL C++客户端API libpqxx的使用

PostgreSQL C++客户端API libpqxx的使用

网络资源是无限的 2832

C++ 通过pqxxlib库链接 PostgreSql数据库

libpqxx是官方发布基于C++语言操作PostgreSQL的API库,简单地讲就是用C++来操作PostgreSQL数据库。

book_longker的专栏 3286

图文说明 Visual Studio 2013/2015 编译 libpqxx 步骤以及常见编译错误

编译步骤(x86版本) 1.下载并安装postgresql,点击进入下载地址。下载界面如下: 目前最新版本是9.5.1,我下载了 Win x86-32 的最新版本。安装后目录如下: 2.下载并解压缩libpqxx,点击进入下载地址。下载界面如下:

又是一只蚂蚁 3844

libpqxx 安装与配置完全指南

**项目名称**: libpqxx **编程语言**: C++ **项目简介**: libpqxx 是官方的 PostgreSQL 数据库管理系统(一个企业级的开源关系型数据库)的 C++ 客户端 API。它为 C++ 应用程序提供了与 PostgreSQL 进行交互的接口,基于 PostgreSQL 的原生 C 接口 libpq 进行构建,使得开发者能够以更现代、更面向对象的方式操作数据

gitblog_07987的博客 1563

c++ 操作postgres,用pqxx

一个例子:https://github.com/Pr0Wolf29/libpqxx-example/blob/master/pqxx_example.cpp安装pqxx:wget http://pqxx.org/download/software/libpqxx/libpqxx-4.0.tar.gz tar xvfz libpqxx-4.0.tar.gz cd libpqxx-4.0 ./conf...

HETONGDE的博客 1954

PostgreSQL连接C/C++接口实例

本教程讲解C/C++连接PostgreSQL,使用libpqxx库,这是官方的C++客户端API用于连接PostgreSQL。libpqxx源代码在BSD许可下,可以免费下载,传递给他人,改变它或出售,它包括在你自己的代码,并分享你的代码更改。 安装 libpqxx最新版本的可供下载链接下载libpqxx。所以下载的最新版本,并遵循以下步骤:Download Libpqxx.

xinpo66的专栏 2万+
上一篇: libpqxx 3.0 tutorial 第1,2章英汉对照
下一篇: CTM R9 notes: Key Functionality
BlueEngine
博客等级 码龄25年 8粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值