如何编译Mongodb-c-driver程序?

时间:2014-07-01 10:50:35

标签: c linux mongodb linker

我用

gcc -o mongotest mongotest.c $(pkg-config --cflags --libs libmongoc-1.0)

用于编译mongodb c驱动程序代码,然后

LD_LIBRARY_PATH=/usr/local/lib ./mongotest

for run。

如果我尝试没有LD_LIBRARY_PATH = / usr / local / lib我有

./mongotest: error while loading shared libraries: libmongoc-1.0.so.0: cannot open shared object file: No such file or directory

如何在没有LD_LIBRARY_PATH = / usr / local / lib的情况下运行程序, 这样做是否正确?我该如何调试mongodb c驱动程序?

1 个答案:

答案 0 :(得分:10)

路径/usr/local/lib应位于/etc/ld.so.conf/etc/ld.so.conf.d/目录中的某个文件中。因此,当您以root身份发出命令mongoc时,库ldconfig将进入缓存。

您可以通过执行此命令来检查库mongoc是否在动态链接器缓存中

ldconfig -p | grep mongoc

如果是,那么在没有明确指定LD_LIBRARY_PATH的情况下运行程序是安全的。

检查可执行文件是否正确链接的其他方法是通过ldd命令获取链接信息。它将打印所有链接的库。

ldd mongotest

如果您看到/usr/local/lib/libmongoc.so.[numbers],则表示它与mongoc库链接。