我正在尝试建立MariaDB 5.5.27从源头。其实我只需要客户端,但我似乎无论如何都必须构建完整的数据库系统。
在使用配置cmake
和稍后编译时make
,我遇到了以下问题:
In file included from /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:27:0,
from /usr/include/boost/smart_ptr/detail/sp_counted_base.hpp:36,
from /usr/include/boost/smart_ptr/detail/shared_count.hpp:29,
from /usr/include/boost/smart_ptr/shared_ptr.hpp:32,
from /usr/include/boost/shared_ptr.hpp:17,
from /usr/include/boost/property_map/vector_property_map.hpp:14,
from /usr/include/boost/property_map/property_map.hpp:844,
from /home/bereziak/make/mariadb-5.5.27/storage/oqgraph/graphcore.cc:36:
/usr/include/boost/detail/sp_typeinfo.hpp: In instantiation of ‘boost::detail::sp_typeinfo boost::detail::sp_typeid_<boost::checked_array_deleter<unsigned char> >::ti_’:
/usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:149:75: instantiated from ‘void* boost::detail::sp_counted_impl_pd<P, D>::get_deleter(const boost::detail::sp_typeinfo&) [with P = unsigned char*, D = boost::checked_array_deleter<unsigned char>]’
/home/bereziak/make/mariadb-5.5.27/storage/oqgraph/graphcore.cc:1101:1: instantiated from here
/usr/include/boost/detail/sp_typeinfo.hpp:77:48: error: conversion from ‘const char*’ to non-scalar type ‘boost::detail::sp_typeinfo’ requested
make[2]: *** [storage/oqgraph/CMakeFiles/oqgraph.dir/graphcore.cc.o] Error 1
make[1]: *** [storage/oqgraph/CMakeFiles/oqgraph.dir/all] Error 2
make: *** [all] Error 2
现在,由于我只需要客户端,所以我正在考虑在配置时完全停用 OQGraph 插件。但我该怎么做呢?这就是我所做的:
cmake .
当然,在我的 MariaDB 目录中。如何停用其中的插件/部件?我configure
只需使用该选项--without-plugin_oqgraph
,我也尝试过cmake
,但它不起作用。
答案1
通常不建议您自己编译 MariaDB Server,有许多选项和构建环境的组合可能会导致问题。
事实上,您可以在没有 OQGRAPH 的情况下进行构建,但即使您包含它,它仍然是一个干净的插件,因此除非您确实这么说,否则它不会在运行时加载。因此,如果您只在系统上安装 Boost 和 Boost graph 开发包,构建就会顺利进行,无需其他调整。
还要查看源包提供的构建脚本。
答案2
你可以尝试与:
cmake . -DWITHOUT_OQGRAPH_STORAGE_ENGINE=1