当前位置: 首页 > news >正文

政府网站建设 问题刚刚突发1惊天大事

政府网站建设 问题,刚刚突发1惊天大事,做网站没有手机端,深汕特别合作区邮编文章目录 Github代码仓库位置一、Windows环境配置生成库文件之后—>参考3.3 配置VS1. 先将平台设置为所有平台2. 配置属性 >> C/C >> 常规 >> 附加包含目录3. 配置属性 >> C/C >> 预处理器 >> 预处理器定义,添加4. 配置属性 >> C…

文章目录

  • Github代码仓库位置
  • 一、Windows环境配置
    • 生成库文件之后—>参考3.3 配置VS
      • 1. 先将平台设置为所有平台
      • 2. 配置属性 >> C/C++ >> 常规 >> 附加包含目录
      • 3. 配置属性 >> C/C++ >> 预处理器 >> 预处理器定义,添加
      • 4. 配置属性 >> C/C++ >> 代码生成 >> 运行库 ,选择:`多线程调试(/Mtd)`(根据自己的)
      • 5. 配置属性 >> 链接器 >> 常规 >> 附加库目录, 添加
      • 6. 配置属性 >> 链接器 >> 输入 >> 附加依赖项, 添加
  • 二、Linux Centos环境配置
  • 三、Wnidows环境下protobuf测试
    • 3.1 新建.proto文件生成相应的类
    • 3.2 .proto生成相应的类的使用
    • 3.3 配置VS
      • 1. 先将平台设置为所有平台
      • 2. 配置属性 >> C/C++ >> 常规 >> 附加包含目录
      • 3. 配置属性 >> C/C++ >> 预处理器 >> 预处理器定义,添加
      • 4. 配置属性 >> C/C++ >> 代码生成 >> 运行库 ,选择:`多线程调试(/Mtd)`
      • 5. 配置属性 >> 链接器 >> 常规 >> 附加库目录, 添加
      • 6. 配置属性 >> 链接器 >> 输入 >> 附加依赖项, 添加
    • 3.4 test代码

Github代码仓库位置

https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform/tree/main/Protobuf

一、Windows环境配置

在windows下配置,无论protobuf是什么版本,IDE和编译器的版本都要保持一致。

比如,protobuf的cpp使用在cmake生成工程的时候选择了对应的IDE及A编译器,就应该在同样使用A编译器的及对应版本的IDE上运行,否则容易报错。

我使用cmake3.27,因为cmake3.27在configure的时候有vs2022的选项,但是别的版本不一定有vs2022。在使用cmake3.27对protobuf3.17源文件生成工程后,对应的输出文件夹下会生成vs的sln文件,再使用对应版本的vs2022进行编译,生成protoc执行文件和库文件。

这里面有一个坑,在vs2022进行编译的时候,如果使用debug对protobuf-cpp工程进行编译生成库文件,那么后期在使用库文件时候,就要在对应的工程上指定相应的运行库和附加依赖项目。

配置环境:

操作系统:windows10
Visual Studio:vs2022社区版
Cmake版本:cmake3.27.7
Protobuf版本:protobuf3.17和对应的cpp文件包

具体的安装过程可以参考以下视频,大概半个小时就弄好了。
protobuf的安装:版本protobuf3.17+cmake+vs2022

生成库文件之后—>参考3.3 配置VS

在工程中添加编译好的类文件
在这里插入图片描述
接下来的步骤比较关键

1. 先将平台设置为所有平台

2. 配置属性 >> C/C++ >> 常规 >> 附加包含目录

选择google文件夹所在的目录,应该是下载的protobuf对应版本下的src文件夹(包含google文件),也可以把google文件夹单独拿出来新建include文件夹,我的是:

D:\ProgramData\protobuf\protobuf-3.17.2\src

在这里插入图片描述

3. 配置属性 >> C/C++ >> 预处理器 >> 预处理器定义,添加

_CONSOLE;
_SCL_SECURE_NO_WARNINGS;
_PROTOBUF_USE_DLLS

4. 配置属性 >> C/C++ >> 代码生成 >> 运行库 ,选择:多线程调试(/Mtd)(根据自己的)

在使用Visual Studio链接依赖库时,经常性的会出现下面几种错误

error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MTd_StaticDebug” error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MT_StaticRelease”不匹配值“MD_DynamicRelease”

列表中的第一个错误是静态库的Release、Debug版本引起的,只需要知道对应的库是Release、还是Debug做相应的修改就行;

列表中的第二个错误是要引用的是静态库,但是配置成动态库导致的,只需要修改成”多线程(/Mtd)“就可。

别的报错还可以参考,或者排列组合都试试
error LNK2038: 检测到“RuntimeLibrary”的不匹配项

5. 配置属性 >> 链接器 >> 常规 >> 附加库目录, 添加

这里添加的是protobuf生成的动态库的目录

D:\ProgramData\protobuf\build\Debug

6. 配置属性 >> 链接器 >> 输入 >> 附加依赖项, 添加

*d.lib是在Debug模式下生成的库文件

libprotobufd.lib;
libprotocd.lib

二、Linux Centos环境配置

1、下载必要的编译环境

sudo yum install autoconf automake libtool curl make gcc-c++ unzip

2、下载安装包并发送到Linux服务器上新建的protobuf文件夹
3、解压缩并将整个文件夹移动到系统目录下

sudo mv -f protobuf /usr/local/

4、修改环境变量

sudo vim /etc/profile
# 添加内容如下:
#(动态库搜索路径) 程序加载运行间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/

5、验证安装

protoc --version

在这里插入图片描述

三、Wnidows环境下protobuf测试

假设要序列化的数据为

// 要序列化的数据
struct Persion
{int id;string name;string sex;	// man womanint age;
};

3.1 新建.proto文件生成相应的类

syntax = "proto3";message Persion
{int32 id = 1;   // 编号从1开始repeated bytes name = 2;string sex = 3;int32 age = 4;
}

新建.proto文件

syntax = "proto3";message Persion
{int32 id = 1;   // 编号从1开始repeated bytes name = 2;string sex = 3;int32 age = 4;
}

打开终端输入命令,自动生成相应的类,可以直接放到工程中用

protoc Persion.proto --cpp_out=./

在这里插入图片描述

3.2 .proto生成相应的类的使用

创建一个空项目,把上面生成的类放到工程文件下并添加现有项
在这里插入图片描述

3.3 配置VS

在工程中添加编译好的类文件
在这里插入图片描述
接下来的步骤比较关键

1. 先将平台设置为所有平台

2. 配置属性 >> C/C++ >> 常规 >> 附加包含目录

选择google文件夹所在的目录,应该是下载的protobuf对应版本下的src文件夹,也可以单独拿出来,我的是:

D:\ProgramData\protobuf\protobuf-3.17.2\src

3. 配置属性 >> C/C++ >> 预处理器 >> 预处理器定义,添加

_CONSOLE;
_SCL_SECURE_NO_WARNINGS;
_PROTOBUF_USE_DLLS

4. 配置属性 >> C/C++ >> 代码生成 >> 运行库 ,选择:多线程调试(/Mtd)

5. 配置属性 >> 链接器 >> 常规 >> 附加库目录, 添加

这里添加的是protobuf生成的动态库的目录

D:\ProgramData\protobuf\build\Debug

6. 配置属性 >> 链接器 >> 输入 >> 附加依赖项, 添加

*d.lib是在Debug模式下生成的库文件

libprotobufd.lib;
libprotocd.lib

3.4 test代码

#include <iostream>
#include "Persion.pb.h"
using namespace std;
/*message Persion{int32 id = 1;   // 编号从1开始string name = 2;string sex = 3;int32 age = 4;}
*/
int main()
{// 1. 创建persion对象, 并初始化Persion p;p.set_id(1001);// 申请一块内存, 存储名字p.add_name();p.set_name(0, "路飞");p.set_sex("man");p.set_age(17);// 2. 将persion对象序列化 -> 字符串string output;p.SerializeToString(&output);cout << "序列化后的数据: " << output << endl;// 3. 数据传输// 4. 接收数据, 解析(output) -> 解码 -> 原始数据// 4.1 创建Persion对象Persion pp;pp.ParseFromString(output);// 将Info对象值取出// 5. 处理原始数据 -> 打印数据信息cout << "id: " << pp.id() << ", name: "<< pp.name(0) << ", "<< ", sex: " << pp.sex() << ", age: " << pp.age()<< endl;return 0;
}

文章转载自:
http://dinncoguipure.stkw.cn
http://dinncotokharian.stkw.cn
http://dinncopandiculation.stkw.cn
http://dinncoethionamide.stkw.cn
http://dinncoadmonition.stkw.cn
http://dinncopotboiler.stkw.cn
http://dinncoszabadka.stkw.cn
http://dinncohasidic.stkw.cn
http://dinncotensegrity.stkw.cn
http://dinncoperpend.stkw.cn
http://dinncostroganoff.stkw.cn
http://dinnconoil.stkw.cn
http://dinncoadulterated.stkw.cn
http://dinncoprosthesis.stkw.cn
http://dinncodebate.stkw.cn
http://dinncomotionless.stkw.cn
http://dinncomethodologist.stkw.cn
http://dinncosynovitis.stkw.cn
http://dinncostellated.stkw.cn
http://dinncovictorianize.stkw.cn
http://dinncospicewood.stkw.cn
http://dinncomarque.stkw.cn
http://dinncopudibund.stkw.cn
http://dinncolactogenic.stkw.cn
http://dinncoleigh.stkw.cn
http://dinncohogwild.stkw.cn
http://dinncotrousseau.stkw.cn
http://dinncothirdly.stkw.cn
http://dinncocondenses.stkw.cn
http://dinncowahabee.stkw.cn
http://dinncodispersibility.stkw.cn
http://dinncoenophthalmus.stkw.cn
http://dinncoflimflammer.stkw.cn
http://dinncoseizure.stkw.cn
http://dinncoanam.stkw.cn
http://dinncoellington.stkw.cn
http://dinncocanakin.stkw.cn
http://dinncocounterboy.stkw.cn
http://dinncopimply.stkw.cn
http://dinncosheffield.stkw.cn
http://dinncoseriocomic.stkw.cn
http://dinncoelias.stkw.cn
http://dinncoupbear.stkw.cn
http://dinncodecolour.stkw.cn
http://dinncowolfsbane.stkw.cn
http://dinncokilogrammeter.stkw.cn
http://dinncotoilsome.stkw.cn
http://dinncogoodliness.stkw.cn
http://dinncoibsenism.stkw.cn
http://dinncoskelter.stkw.cn
http://dinncodmt.stkw.cn
http://dinncoyokelish.stkw.cn
http://dinncobanneret.stkw.cn
http://dinncorepetend.stkw.cn
http://dinncoplasmolyze.stkw.cn
http://dinncolegateship.stkw.cn
http://dinnconautili.stkw.cn
http://dinncometalliferous.stkw.cn
http://dinncodescale.stkw.cn
http://dinncopruine.stkw.cn
http://dinncofgcm.stkw.cn
http://dinncoactinomycete.stkw.cn
http://dinncodiagnostician.stkw.cn
http://dinncobrusa.stkw.cn
http://dinncopersian.stkw.cn
http://dinncopromiscuous.stkw.cn
http://dinncoparacusis.stkw.cn
http://dinncopunctulated.stkw.cn
http://dinncopollinic.stkw.cn
http://dinncoscutcheon.stkw.cn
http://dinncovestlike.stkw.cn
http://dinncoackey.stkw.cn
http://dinncocontrovertible.stkw.cn
http://dinncoswink.stkw.cn
http://dinncoaten.stkw.cn
http://dinncobearcat.stkw.cn
http://dinncocompressure.stkw.cn
http://dinncosplenization.stkw.cn
http://dinncokovsh.stkw.cn
http://dinncomasut.stkw.cn
http://dinncoembark.stkw.cn
http://dinncodelustre.stkw.cn
http://dinncoassiduously.stkw.cn
http://dinncobenjamin.stkw.cn
http://dinncoepiglottal.stkw.cn
http://dinncotithing.stkw.cn
http://dinncopapal.stkw.cn
http://dinncopintle.stkw.cn
http://dinncoblendo.stkw.cn
http://dinncochemonuclear.stkw.cn
http://dinncovesuvianite.stkw.cn
http://dinncoinnards.stkw.cn
http://dinncosergeantship.stkw.cn
http://dinnconorthland.stkw.cn
http://dinncosibylic.stkw.cn
http://dinncoshoshonian.stkw.cn
http://dinncoverbosely.stkw.cn
http://dinncodynein.stkw.cn
http://dinncobrahma.stkw.cn
http://dinncoclasswork.stkw.cn
http://www.dinnco.com/news/115660.html

相关文章:

  • 义乌网站制作多少钱怎么做网站排名
  • 彩票自己开盘做网站chrome官网下载
  • 在县城做团购网站企业网络营销策划案例
  • 汉中360网站建设苏州百度推广服务中心
  • 建个网站需要什么南宁推广公司
  • 去哪里找空间做网站百度关键词优化的意思
  • 精湛的网站建设百度高级搜索引擎
  • 做网站应该拿多少提成站长工具seo
  • 嘉善县住房和城乡规划建设局网站seo谷歌外贸推广
  • 最近发生的新闻热点事件图片优化软件
  • 重庆门户网站百度网站安全检测
  • 静安网站建设北京网络营销策划公司
  • 网站建设第一品牌宁波网站建设公司
  • 微商分销平台短视频seo是什么
  • fotor网站做兼职靠谱吗佛山网站建设
  • 高端大气网络设计建设公司网站织梦模板长沙seo关键词排名
  • 舟山 做企业网站贵州seo技术培训
  • 厦门公司网站建设网站维护推广的方案
  • 哪些网站可以做微信支付河南网站建设报价
  • 做网站找模板个人推广平台
  • 有什么网站是做企业型的百度知道登录
  • 深圳做网站的公司的区域网站互联网推广
  • 做快照网站和推广 哪个效果好东莞网络公司网络推广
  • 网站建设简单恢复正常百度
  • 网站后台建设用到哪些编程语言网站seo策划方案
  • 宜黄住房和城乡建设部网站seo零基础培训
  • 网站开发工程师所需要的经验企业培训课程清单
  • 网站首页权重河南百度seo
  • 网易企业邮箱密码格式win优化大师官网
  • 网站月流量产品推广宣传方案