後世のために私の仕事を投稿しています。 C++で私の最後の例を完成させた後で、私が実際にC言語でそれを行う必要があったことを実感しました。どちらの反復もJavaプログラマとしてかなりの努力を払ってくれました。サンプルコードの多くは、あまりにも多くの穴を残していると思います。-特にかなり慣れ親しんだ人のためにコマンドラインからかなり難しいビルディングになるとEclipseを使用して、プロジェクトを構築し、依存関係を処理します。醸造とOSX用の依存関係をインストールする方法ZeroMQ上の単純なフラットバッファCの例 - zmq上のstructをflatbufferにコピーし、再び構造体に戻します
:
brew install flatcc
brew install zeromq
あなたが同様にインストールされているすべての標準的なビルダーのバイナリが必要になります。私はコンパイルにはgccを使用:
gcc publisher.c -o bin/zmq_pub -lzmq -lflatcc
gcc subscriber.c -o bin/zmq_sub -lzmq
これは、あなたが醸造は、それらのインストールが終了した後、/あなたは/ usr/localが含まへのシンボリックリンクを取得する必要がありzmqとflatccライブラリをインストールしている前提としています。あなたはライブラリが正しくリンク/インストールされていない場合は Undefined symbols for architecture x86_64:
:次のように:
zmq_cpub $ls -la /usr/local/include lrwxr-xr-x 1 user group 37 Oct 18 18:43 flatcc -> ../Cellar/flatcc/0.3.4/include/flatcc
次のようなコンパイルエラーを取得します。コンパイラ/リンカは関数の名前を変更し、それらの前に_を付けて、潜在的にあなたを混乱させます。 _flatcc_builder_init
ではないとは限りませんが、Undefined symbols for architecture x86_64 _flatcc_builder_init
のようになります。
これは、C/C++でのライブラリのリンクがJavaとは基本的に異なるためです。 JARを追加する特定のプロジェクト構築パスの代わりに、外部C/C++ライブラリをインストールできる既知の場所があります。 /usr/local/include
,/usr/local/lib
,/usr/lib
および/usr/include
。
そして、あなたのパスにflatccバイナリをインストールした後、あなたの地元のプロジェクトで使用するヘッダファイルを生成することを忘れないでください:私は私の旅に直面したほとんどすべての障害物でなければなりません
flatcc -a Car.fbs
ダウンCレーン。誰かを助けてくれることを願っています。