【问题标题】:Cap'n Proto - How to compile the generated C++ fileCap'n Proto - 如何编译生成的 C++ 文件
【发布时间】:2019-07-09 10:31:51
【问题描述】:

我是 Cap'n Proto 的新手,我正在尝试编译此处找到的计算器示例: https://github.com/capnproto/capnproto/blob/master/c%2B%2B/samples/calculator.capnp

我使用此命令capnp compile -oc++ calculator.capnp 生成calculator.capnp.c++calculator.capnp.h 文件。

我尝试使用以下命令编译calculator.capnp.c++ 文件:g++ -o calc calculator.capnp.c++ -lcapnp -lkj -lcapnp-rpc -lkj-async,但收到此错误消息:

/usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/8/../../../x86_64-linux-gnu/Scrt1.o: 在函数'_start'中: (.text+0x20): 未定义的对'main'的引用 collect2:错误:ld 返回 1 个退出状态

我查看了官方文档和其他资源,但没有找到有关如何运行此示例(或类似内容)的说明。我该如何继续并运行它?

【问题讨论】:

  • 你看过full samples directory吗?尤其是计算器clientserver 程序?你去the main website阅读它的文档了吗?
  • 您查看了哪些“官方文档”和“其他资源”?为您的问题添加链接可能会有所帮助。
  • @Someprogrammerdude 公平地说,我看不到任何有关构建和运行示例的说明。虽然通过检查文件的内容我们可以推断出来!
  • “时间旅行 RPC:Cap'n Proto 具有一个 RPC 系统,该系统实施时间旅行,以便在请求到达服务器之前将调用结果返回给客户端!”我> lolwut

标签: c++ linux g++ capnproto


【解决方案1】:

您不是在构建整个示例,只是在构建生成的协议文件。

注意 repo 也有 calculator-server.c++calculator-client.c++,它们都包含 main 入口函数。选择一个并将其链接到您的程序中。

如果您使用已提供的 CMakeLists.txt,则为您完成。

【讨论】:

  • 谢谢,但由于我对此很陌生,我不确定如何“使用提供的 CMakeLists.txt”文件。我也不确定如何“选择一个(calculator-server.c++calculator-client.c++ 文件)并将其链接到您的程序中”,正如您所建议的那样。你能帮我解决这个问题吗?
  • @LeenA 我不能以这种格式告诉你我还没有告诉你的任何事情。只有您可以选择要构建和运行的示例。服务器还是客户端?我不能替你做决定。 & 如果你不熟悉 CMake,你可以阅读他们的文档。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-20
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 2020-04-09
  • 1970-01-01
相关资源
最近更新 更多