我正在做一个项目,我在其中使用协议buf。我安装了3.1.0版。
我写了一个程序来测试Prorobuf中的序列化,看起来像这样
// This file exists to facilitate testing
//MIST.cpp
//#include <asio.hpp>
#include <Task.hpp> //user defined, not relevant
#include <MIST.hpp> //user defined, not relevant
#include <ReceiveData.hpp> //user defined, not relevant
#include <MIST.pb.h> //protobuf file made from protoc
int main() {
/*MIST::ReceiveData receiveObj;
std::string s = receiveObj.receive<64>();
std::cout << "Message received: '" << s << "'" << std::endl;*/
ProtobufMIST::Task taskObj;
taskObj.set_task_name("The Best Task");
taskObj.set_task_id("7");
std::string* message;
if(!taskObj.SerializeToString(message))
std::cout << "Task '" << taskObj.task_name() << "'" << " not serialized successfully\n";
else
std::cout << message << std::endl;
return 0;
}
我用构建脚本编译了它。下面的命令是lpthread MIST。cpp-lprotobuf-o a.o
此命令成功退出。
然后,我尝试用命令链接a.o,得到以下错误
a.o: In function `main':
MIST.cpp:(.text+0x20): undefined reference to `ProtobufMIST::Task::Task()'
MIST.cpp:(.text+0x55): undefined reference to `google::protobuf::MessageLite::SerializeToString(std::string*) const'
MIST.cpp:(.text+0xd0): undefined reference to `ProtobufMIST::Task::~Task()'
MIST.cpp:(.text+0xf2): undefined reference to `ProtobufMIST::Task::~Task()'
a.o: In function `google::protobuf::internal::GetEmptyStringAlreadyInited()':
MIST.cpp:(.text._ZN6google8protobuf8internal27GetEmptyStringAlreadyInitedEv[_ZN6google8protobuf8internal27GetEmptyStringAlreadyInitedEv]+0x5): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
collect2: error: ld returned 1 exit status
我不确定如何可以有未定义的引用来包含我已经编译过的文件,或者当我同时包含-L/usr/local/lib和-lara buf时,如何可以有未定义的引用来包含我已经编译过的文件。我对如何解决问题感到困惑。
作为参考我试图实施这些解决方案很少成功
链接协议库的问题
将protobuf库与代码链接(Google协议缓冲区)
无法从google协议缓冲区编译示例
在虚拟机上运行Kubuntu 16.10。主机为Windows 10。
编译。pb。将文件抄送到。o文件并将其与主程序链接,这应该可以解决问题。
我正在尝试运行Tensorflow的简单语音识别网络示例: 但是我一直得到: 回溯(最近一次调用):文件“C:\Users\DELL 7000\AppData\Local\Programs\Python\Python37-32\lib\site packages\tensorflow\Python\pywrap\u tensorflow.py”,第18行,swig\u import\u helpe
我尝试使用c1z特性来使用std::experimental::filesystem 在用g添加-lstdc-fs标志之后,我可以看到我能够将std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()与我的程序链接起来。 i、 e我不会再犯这个错误了 sdc.cpp:(.文本 0x7e5): 未定义对“标准:实验::文件系统
问题内容: 这是我要构建的工作流程 使用脚本编译我的原型文件,将生成的src放在指定目录中 链接到Eclipse中生成的类 编译我的项目 我可以很容易地使用Eclipse CDT针对C ++做到这一点:在我的项目中,选择File-> New-> Other,然后在General下选择File。然后,我单击“高级”,然后选择指向系统文件的链接。 不过,我还没有发现如何针对Java执行此操作。一旦回答
我正在尝试为协议缓冲区构建Java运行时库。我在Windows和OS X上都犯了错误,因为我遵循了Protocol Buffers项目(从中克隆而来)中Java目录下的自述指令https://github.com/google/protobuf). 当我在protobuf/java目录下运行
我试图生成excel文件,我的数据是超文本标记语言字符串的形式。html字符串中有超链接(锚标签)。列1有一个超链接和之后的一些文本。然而,当在Excel中查看时,它使该单元格中的所有文本都成为超链接。有可能限制吗?在浏览器中打开下面的文件,它工作正常。当在excel中打开时,它会超链接该单元格中的所有内容。
我正在尝试将OpenGL与Qt一起使用。我正在遵循这个示例:http://qt-project.org/doc/qt-5.0/qtgui/openglwindow.html使用Qt 5 build for msvc2012。最后我得到了以下错误: 错误LNK2019:未解析的外部符号_imp_glClear@4在函数“public:virtual void _uthiscall OpenGLWin