【发布时间】:2016-11-11 05:07:05
【问题描述】:
所以我按照官方教程进行安装:https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/
不过,我不能将生成的库用作静态库。
所以我设法按照描述编译了驱动程序的 C 版本,在执行 make && sudo 之前,我已经使用 ./configure 启用了标志 --enable-static=yes make install 我得到了 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:无法打开共享对象文件:没有这样的文件或目录
所以我知道这是因为缺少一些符号,然后我需要使用共享库来运行二进制文件,但我不希望这种情况发生,我希望二进制文件中的符号可以在没有的情况下运行任何 LD_PRELOAD。
有什么建议吗?
【问题讨论】:
-
你没有提到你是如何编译你的应用程序的。请发布SSCCE,以便我们尝试复制您的问题。在这种情况下,请同时包含确切的命令行(或 shell 脚本)和输出。
标签: c++ mongodb c++11 gcc mongo-cxx-driver