2

アプリケーション用に mongo db 用の小さな C ベースのクライアントを作成しようとしています。私は長い間 C でプログラミングしていないので、私が直面している問題は非常に基本的なものである可能性があります。コードをコンパイルできません:-)

64 ビットの Apple Macbook Pro (OSX Lion) を使用しています。gcc は次のとおりです。

Target: i686-apple-darwin11
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)

mongo c driverを git clone し、0.6 に git checkout してから make を実行しました。

make
make install
make test

テストは正常に実行され、ライブラリは /usr/local/lib/ に正しくインストールされ、.h ファイルは /usr/local/include に正しく配置されました。

次に、次のように、コードの一部を data.c というファイルにコピーして貼り付けました。

#include <stdio.h>
#include "mongo.h"

int main() {
  mongo conn[1];
  int status = mongo_connect(conn, "127.0.0.1", 27017);
  return 0;
}

接続を開こうとしているだけです。これをコンパイルしようとすると、次のエラーが発生します。

gcc --std=c99 -I/usr/local/include -L/usr/local/lib -o data data.c -lmongoc

Undefined symbols for architecture x86_64:
  "_mongo_connect", referenced from:
      _main in ccjPPPVs.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

私は何を間違っていますか?

4

2 に答える 2

2

Mongo-C-driver 動的ライブラリ ビルドが Mac OS X (Lion) 用に修正されました。

https://github.com/mongodb/mongo-c-driver/commit/ea89d8fa966ccf601a67e1507e67e829775f6bcb

https://jira.mongodb.org/browse/CDRIVER-158

于 2012-07-28T03:22:02.487 に答える
1

Mac に問題があるようです - 代わりにスタティック ライブラリにリンクしてください。

于 2012-07-18T21:04:18.923 に答える