我正在尝试在 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。当我尝试按照https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/中提供的说明使用 cmake 编译 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.out”中找到
通过以下输出确定 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 输出。我在文件中搜索了“错误”或“失败”,但找不到任何一个字符串。
如果有人能指出我在这里缺少什么,那就太好了?