c++ - Cap'n Proto - 如何编译生成的 C++ 文件

标签 c++ linux g++ capnproto

我是 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: in function '_start': (.text+0x20): undefined reference to 'main' collect2: error: ld returned 1 exit status

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

最佳答案

您不是在构建整个 样本,只是构建生成的协议(protocol)文件。

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

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

关于c++ - Cap'n Proto - 如何编译生成的 C++ 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56950588/

相关文章:

c++ - 是否可以在 Makefile 的单次传递中使用 gcc/g++/nvcc automatic dependency -M 而无需将依赖项保存到文件中?

c++ - 为什么在将 C 样式数组传递给需要 std::string 的方法时出现链接器问题?

c++ - 从文本文件中读取数据并删除所有换行符并在 C++ 中显示在控制台中

c++ - 如何更新一组 std::pair 中的成员?

c++ - 生成一个 boost-python 引用

php - 无法删除 php shell_exec() 返回值中的换行符

c++ - boost::asio::ssl::stream<boost::asio::ip::tcp::socket>::shutdown() 是做什么的?

linux - 无法安装 through2-map

linux - 调用另一个脚本调用的无限循环在后台运行的 shell 脚本 (.sh)

opengl - undefined reference 在 Ubuntu 上编译 OpenGL/glfw/glew(g++)