所以我按照官方教程进行安装:https ://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/
不过,我不能将生成的库用作静态库。
因此,我设法按照描述编译了驱动程序的 C 版本,在执行make && sudo make install之前,我已经使用 ./configure启用了标志--enable-static=yes并且得到了libmongoc-1.0.a和libbson-1.0.a是静态的。到目前为止,一切都很好。
然后我做了cxx版的驱动,只是没有C版的配置文件。所以我刚刚做了一个
cmake -DCMAKE_BUILD_TYPE=Release -DBSONCXX_POLY_USE_BOOST=1 -DCMAKE_INSTALL_PREFIX=/usr/local
从构建文件夹中,然后是make && sudo make install
所以我得到了libmongocxx.a和libbsoncxx.a,但是当我尝试用它们编译时,我无法运行二进制文件,因为我收到以下错误: 加载共享库时出错:libmongocxx.so._noabi: cannot open共享对象文件:没有这样的文件或目录
所以我明白这是因为缺少一些符号,然后我需要使用共享库来运行二进制文件,但我不希望这种情况发生,我希望二进制文件中的符号可以在没有任何 LD_PRELOAD 的情况下运行它。
有什么建议么 ?