0

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): 「メイン」collect2 への未定義の参照: エラー: ld が 1 つの終了ステータスを返しました

公式ドキュメントやその他のリソースを調べましたが、この例 (または同様のもの) を実行する方法についての説明は見つかりませんでした。どうすれば続行して実行できますか?

4

1 に答える 1

0

サンプル全体をビルドするのではなく、生成されたプロトコル ファイルのみをビルドします。

calculator-server.c++リポジトリに と がありcalculator-client.c++、どちらにもmainエントリポイント関数が含まれていることに注意してください。1 つを選択して、プログラムにリンクします。

既に提供されている CMakeLists.txt を使用する場合、これは自動的に行われます。

于 2019-07-09T10:35:10.203 に答える