如何在 linux (CentOS) 上构建 pgmagick



我在尝试在 CentOS 5.6 上构建pgmagick时没有取得多大成功。

我已经通过yum安装了以下内容:

boost-1.33.1
boost-devel-1.33.1
GraphicsMagick-1.3.14
GraphicsMagick-c++-1.3.14
GraphicsMagick-devel-1.3.14
GraphicsMagick-c++-devel-1.3.14
python-2.6.5
python-devel-2.6.5

但是,每当我尝试构建pgmagick时,都会收到以下错误:

/usr/include/boost/python/converter/registered.hpp: In instantiation of ‘const boost::python::converter::registration& boost::python::converter::detail::registered_base<const volatile void>::converters’:
/usr/include/boost/python/converter/arg_from_python.hpp:269:   instantiated from ‘boost::python::converter::pointer_arg_from_python<T>::pointer_arg_from_python(PyObject*) [with T = void*]’
/usr/include/boost/python/arg_from_python.hpp:70:   instantiated from ‘boost::python::arg_from_python<T>::arg_from_python(PyObject*) [with T = void*]’
/usr/include/boost/preprocessor/iteration/detail/local.hpp:37:   instantiated from ‘PyObject* boost::python::detail::caller_arity<3u>::impl<F, Policies, Sig>::operator()(PyObject*, PyObject*) [with F = void (*)(Magick::Blob&, void*, long unsigned int), Policies = boost::python::default_call_policies, Sig = boost::mpl::vector4<void, Magick::Blob&, void*, long unsigned int>]’
/usr/include/boost/python/object/py_function.hpp:38:   instantiated from ‘PyObject* boost::python::objects::caller_py_function_impl<Caller>::operator()(PyObject*, PyObject*) [with Caller = boost::python::detail::caller<void (*)(Magick::Blob&, void*, long unsigned int), boost::python::default_call_policies, boost::mpl::vector4<void, Magick::Blob&, void*, long unsigned int> >]’
./src/_Blob.cpp:43:   instantiated from here
/usr/include/boost/python/converter/registered.hpp:88: error: no matching function for call to ‘registry_lookup(const volatile void (*)())’
error: command 'gcc' failed with exit status 1

我也尝试过安装 boost141boost141-develboost141-python,但 pgmagick 不会针对这些库进行构建。

关于如何解决问题或进一步诊断问题的任何建议?

看起来版本不兼容问题,请尝试使用 boost-1.34

当你运行配置时,我假设你./configure --enable-shared=yes执行它(注意参数)。如果你这样做了(就像教程所说的那样),我认为没有理由它不应该工作。如果您没有这样做,这可能会有所帮助。

事实证明,使其工作的唯一方法是:

  • 从系统中删除所有预编译的boost rpm
  • 从系统中删除所有预编译的GraphicsMagick rpm
  • 使用./configure --prefix=/usr --enable-shared=yes手动编译boost-1.49.0
  • 通过yum重新安装GraphicsMagick-1.3.14GraphicsMagick-c++-1.3.14GraphicsMagick-devel-1.3.14GraphicsMagick-c++-devel-1.3.14
  • 从位桶克隆pgmagick存储库
  • pgmagick目录中再次运行python setup.py install

相关内容

  • 没有找到相关文章

最新更新