【问题标题】:mongo-cxx-driver installation does install librariesmongo-cxx-driver 安装确实安装了库
【发布时间】:2017-11-27 03:24:19
【问题描述】:

我正在尝试在 Ubuntu14.4 上编译 mongo-cxx-driver-r3.1.1 。我已经按照说明从源代码安装了 mongo-c-driver-1.6.3。

pkg-config --cflags --libs libmongoc-1.0 libbson-1.0 returns 
-I/usr/local/include/libmongoc-1.0 -I/usr/local/include/libbson-1.0  -L/usr/local/lib -lmongoc-1.0 -lsasl2 -lssl -lcrypto -lrt -lbson-1.0

我有提升版本 1.57。当我尝试使用 cmake 按照https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/ 中提供的说明编译 mongo-cxx-driver-r3.1.1 时。

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local  ..

我得到以下日志:

-- 增强版本:1.57.0

-- 配置完成

-- 生成完成

-- 构建文件已写入:/user/home/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build

我尝试了其他选项,例如:

cmake  -DBSONCXX_POLY_USE_MNMLSTC:Bool=OFF -DBSONCXX_POLY_USE_BOOST:Bool=ON -

DCMAKE_VERBOSE_MAKEFILE=ON  -DCMAKE_C_COMPILER="/usr/bin/gcc" -
DCMAKE_CXX_COMPILER="/usr/bin/g++-4.8"  -DCMAKE_BUILD_TYPE=Release -
DCMAKE_INSTALL_PREFIX=/usr/local -DLIBMONGOC_DIR=/usr/local/lib -
DLIBBSON_DIR=/usr/local/lib .. 

但是,我没有看到与 mongocxx 相关的库或头文件。以下是 CMakeFiles/CMakeOutput.log 输出:

系统为:Linux - 3.13.0-32-generic - x86_64 编译CXX

编译器识别源文件“CMakeCXXCompilerId.cpp”

成功了。编译器:/usr/bin/g++-4.8 构建标志:Id 标志:

输出是:

0

编译CXX编译器识别源“CMakeCXXCompilerId.cpp”产生“a.out”

CXX 编译器标识为 GNU,可在“/home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/3.2.2/CompilerIdCXX/a.出”

通过以下输出确定 CXX 编译器是否正常工作: 更改目录:/home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp

运行编译命令:"/usr/bin/make" "cmTryCompileExec1480695504/fast"

ake[1]:进入目录/home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp' /usr/bin/cmake -E cmake_progress_report /home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp/CMakeFiles 1 Building CXX object CMakeFiles/cmTryCompileExec1480695504.dir/testCXXCompiler.cxx.o /usr/bin/g++-4.8 -o CMakeFiles/cmTryCompileExec1480695504.dir/testCXXCompiler.cxx.o -c /home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx Linking CXX executable cmTryCompileExec1480695504 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1480695504.dir/link.txt --verbose=1 /usr/bin/g++-4.8 CMakeFiles/cmTryCompileExec1480695504.dir/testCXXCompiler.cxx.o -o cmTryCompileExec1480695504 -rdynamic make[1]: Leaving directory/home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp'

检测使用以下输出编译的 CXX 编译器 ABI 信息: 更改目录:/home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp

运行编译命令:"/usr/bin/make" "cmTryCompileExec4079379117/fast" ......

.......


/home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp/src.cxx:2:25:警告:\u2018int somefunc()\ u2019 已弃用(在 /home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp/src.cxx:1 声明)[-Wdeprecated-declarations] int main() { return somefunc();} ^ /home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp/src.cxx:2:34:警告:\u2018int somefunc()\u2019 已弃用(在 /home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp/src.cxx:1 声明)[-Wdeprecated-declarations] int main() { return somefunc();} ^ 链接 CXX 可执行文件 cmTryCompileExec1892014975 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTryCompileExec1892014975.dir/link.txt --verbose=1 /usr/bin/g++-4.8 -DCOMPILER_HAS_DEPRECATED_ATTR CMakeFiles/cmTryCompileExec1892014975.dir/src.cxx.o -o cmTryCompileExec1892014975 -rdynamic make[1]: 离开目录`/home/cvaidyan/mongo-c-driver-1.6.3/mongo-cxx-driver-r3.1.1/build/CMakeFiles/CMakeTmp'

源文件是: attribute((deprecated)) int somefunc() { return 0; } int main() { return somefunc();}

如果有意义,我可以发布整个 cmake 输出。我在文件中搜索了“错误”或“失败”,但找不到任何一个字符串。

如果有人能指出我在这里遗漏了什么,那就太好了?

【问题讨论】:

  • 这个问题非常难以阅读和理解。你是说 CMake 失败了吗?我没有看到任何证据,或者至少没有以易于理解的格式?如果 CMake 成功,则需要在运行 cmake 后运行“make && make install”才能构建和安装驱动程序。
  • 运行 cmake 你只准备 make 脚本。 IE。运行cmake .... 时,您没有编译任何内容。要实际编译一些东西,你应该运行 make 命令,从你指向 cmake 的地方准备构建。
  • 嗨奇特拉!如果您的问题仍未解决,请随时在 MongoDB 用户 Google Group[1] 或 mongocxx JIRA 项目[2] 上提问,我可以帮助您调试它。 [1]:groups.google.com/forum/#!forum/mongodb-user [2]:jira.mongodb.org/browse/CXX
  • 很抱歉延迟发布。问题得到解决。品牌存在一些问题。

标签: c++ mongodb mongo-cxx-driver


【解决方案1】:

这个 bash 文件适用于 ubuntu 16.04

#!/bin/bash
apt-get update >> /dev/null
apt-get install openssh-server -y 
apt-get install g++ -y
apt-get install cmake -y
apt-get install git -y
#installing the mongoc dependencies and driver
apt-get install pkg-config libssl-dev libsasl2-dev -y
cd ~
wget https://github.com/mongodb/mongo-c-driver/releases/download/1.6.2/mongo-c-driver-1.6.2.tar.gz
tar xzf mongo-c-driver-1.6.2.tar.gz
cd mongo-c-driver-1.6.2
./configure --disable-automatic-init-and-cleanup
make
make install
cd ~ 
rm mongo-c-driver-1.6.2.tar.gz
rm -rf mongo-c-driver-1.6.2


#installing mongocxx driver - connects c++ to mongo
wget https://github.com/mongodb/mongo-cxx-driver/archive/r3.1.1.tar.gz
tar -xzf r3.1.1.tar.gz
cd mongo-cxx-driver-r3.1.1/build
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..
make EP_mnmlstc_core
make
make install
cd ~
rm r3.1.1.tar.gz
rm -rf mongo-cxx-driver-r3.1.1

【讨论】:

    猜你喜欢
    • 2013-04-29
    • 2015-10-30
    • 1970-01-01
    • 2017-06-19
    • 1970-01-01
    • 2011-05-23
    • 2018-11-11
    • 1970-01-01
    • 2021-11-12
    相关资源
    最近更新 更多