热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在C++中使用Protobuf3.2很困难

如何解决《在C++中使用Protobuf3.2很困难》经验,求大佬解答?

我正在尝试在C++中使用Protobuf,但无法让它做任何有意义的事情.我正在使用Visual Studio 2015.

我建立了protobuf 库.我正在使用github的最新版本.

我已经创建了一个.proto文件:

syntax = "proto3";
package Networking; 

message Robot{

message KinematicLinkProto {
    string name = 1;
    float x_pos = 2;
    float y_pos = 3;
    float z_pos = 4;
    float roll = 5;
    float pitch = 6;
    float yaw = 7;
    float x_scale = 8;
    float y_scale = 9;
    float z_scale = 10;
}

repeated KinematicLinkProto links = 1;

}

我编译它,并尝试将其添加到项目中:

#include "Robot.pb.h"



int  main(int argc, char **argv)
{

    Networking::Robot robot_message;

    return 0;

}

我的链接器链接libprotobuf.lib.我正在构建它/ MD和libprotobuf构建为/ MD.

出于某种原因,这个简单的程序有以下两个链接器错误:

Error   LNK2019 unresolved external symbol "private: static bool google::protobuf::io::CodedOutputStream::default_serialization_deterministic_" (?default_serialization_deterministic_@CodedOutputStream@io@protobuf@google@@0_NA) referenced in function "public: virtual unsigned char * __cdecl Networking::Robot::SerializeWithCachedSizesToArray(unsigned char *)const " (?SerializeWithCachedSizesToArray@Robot@Networking@@UEBAPEAEPEAE@Z)   


Error   LNK2019 unresolved external symbol "class google::protobuf::internal::ExplicitlyConstructed,class std::allocator > > google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3V?$ExplicitlyConstructed@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@123@A) referenced in function "protected: void __cdecl google::protobuf::internal::RepeatedPtrFieldBase::Clear::TypeHandler>(void)" (??$Clear@VTypeHandler@?$RepeatedPtrField@VRobot_KinematicLinkProto@Networking@@@protobuf@google@@@RepeatedPtrFieldBase@internal@protobuf@google@@IEAAXXZ)   

我很困惑 - 这是一个非常简单的程序.我怎么可能做错了?

编辑:一位同事编译了原型3001000.这个版本似乎确实有效.我很好奇3002000打破了一切.


推荐阅读
  • C语言实现推箱子游戏的完整代码
    本文详细介绍了如何使用C语言在Linux环境下实现一个简单的推箱子游戏,包括游戏的基本规则、地图设计及代码实现。适合C语言初学者学习。 ... [详细]
  • 本文探讨了在QT框架中如何有效遍历文件内容,并解决了一个常见的错误,即文件内容读取为空时弹窗无法正常显示的问题。 ... [详细]
  • 本文介绍了一个使用 C++ 实现的进度条功能,通过自定义函数指针和控制台输出来展示任务完成的进度。 ... [详细]
  • BFS深搜hashtable来判断是横线还是竖线但是为啥还是90分啊呜呜!找不到原因#define_CRT_SECURE_NO_WARNINGS1#include ... [详细]
  • 本文介绍了一个项目中如何在Windows平台上实现多声道音频数据的采集,特别是针对DANTE音频接口的8路立体声音频通道。文章详细描述了使用Windows底层音频API进行音频采集的方法,并提供了一个具体的实现示例。 ... [详细]
  • 本文探讨了C++编程语言中声明与定义的区别,以及如何通过内部连接和外部连接来组织源文件,确保代码的正确链接与编译。文章详细解析了不同类型、变量、函数以及类的连接属性,并提供了实用的示例。 ... [详细]
  • 本文详细介绍了Manacher算法,该算法能够在O(n)时间内找到字符串中的最长回文子串。通过对字符串进行预处理,并使用动态规划的思想,Manacher算法能够高效地解决这一问题。 ... [详细]
  • 本文探讨了C++中如何正确使用+运算符来处理字符串和数字的拼接问题,分析了为何某些操作有效而另一些则会引发编译错误。 ... [详细]
  • 本文详细探讨了C++中闭包的概念及其实现方式,包括通过重载operator()、使用lambda表达式以及std::bind等方法,旨在帮助开发者更好地理解和运用闭包。 ... [详细]
  • 在Win10上利用VS2015构建Caffe2环境
    本文详细介绍如何在Windows 10操作系统上通过Visual Studio 2015编译Caffe2深度学习框架的过程。包括必要的软件安装、环境配置以及常见问题的解决方法。 ... [详细]
  • 本文探讨了Java编程中MVC模式的优势与局限,以及如何利用Java开发一款基于鸟瞰视角的赛车游戏。 ... [详细]
  • OBS (Open Broadcaster Software) 架构解析
    本文介绍 OBS(Open Broadcaster Software),一款专为直播设计的开源软件。文章将详细探讨其技术架构、核心组件及其开发环境要求。 ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
  • Microsoft即将发布WPF/E的CTP(Community Technology Preview)和SDK,标志着RIA(Rich Internet Application)技术的新里程碑。更多详情及下载链接请参见MSDN官方页面。 ... [详细]
  • 本文介绍了如何在MATLAB中实现单变量线性回归,这是基于Coursera上Andrew Ng教授的机器学习课程中的一个实践项目。文章详细讲解了从数据可视化到模型训练的每一个步骤。 ... [详细]
author-avatar
盘雪情
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有