0

当我运行hello_mongoc测试应用程序(重命名为 mongotest)时,输出如下所示:

{ "ok" : 1 }
./mongotest: symbol lookup error: /usr/local/lib/libmongoc-1.0.so.0: undefined symbol: bson_validate_with_error

该应用程序是使用以下内容构建的:

cc -o mongotest mongotest.o -lmongoc-1.0 -lbson-1.0

并且没有给出编译警告/错误。

这是在 /usr/local/lib 中:

lrwxrwxrwx  1 root staff      16 Oct  5 11:38 libbson-1.0.so -> libbson-1.0.so.0
lrwxrwxrwx  1 root staff      20 Oct  5 11:38 libbson-1.0.so.0 -> libbson-1.0.so.0.0.0
-rw-r--r--  1 root staff  549180 Oct  5 11:29 libbson-1.0.so.0.0.0
-rw-r--r--  1 root staff  744738 Oct  5 11:30 libbson-static-1.0.a
lrwxrwxrwx  1 root staff      18 Oct  5 11:38 libmongoc-1.0.so -> libmongoc-1.0.so.0
lrwxrwxrwx  1 root staff      22 Oct  5 11:38 libmongoc-1.0.so.0 -> libmongoc-1.0.so.0.0.0
-rw-r--r--  1 root staff 2162580 Oct  5 11:31 libmongoc-1.0.so.0.0.0
-rw-r--r--  1 root staff 3553982 Oct  5 11:33 libmongoc-static-1.0.a

我在树莓派 3B+ 上运行

4

1 回答 1

0

根据libbson消息来源bson_validate_with_error被添加了1.7.0,而你有1.0

编辑1:

这似乎是一个链接器问题。更多信息在下面的评论中。

编辑2:

解决此问题的一种方法是使用静态链接:

gcc -o mongotest mongotest.c $(pkg-config --libs --cflags libmongoc-static-1.0)
于 2018-11-04T17:49:11.513 回答