سؤال

I'm not having much success when attempting building pgmagick on CentOS 5.6.

I've installed the following via 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

However, whenever I try to build pgmagick I get the following error:

/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

I've also tried installing boost141, boost141-devel and boost141-python but pgmagick won't build against those libraries.

Any suggestions on how I can fix the problem, or further diagnose the issue?

هل كانت مفيدة؟

المحلول 3

Turns out the only way to get this working was to:

  • remove all the pre-compiled boost rpms from the system
  • remove all the pre-compiled GraphicsMagick rpms from the system
  • compile boost-1.49.0 manually, using ./configure --prefix=/usr --enable-shared=yes
  • reinstall GraphicsMagick-1.3.14, GraphicsMagick-c++-1.3.14, GraphicsMagick-devel-1.3.14 and GraphicsMagick-c++-devel-1.3.14 via yum
  • clone the pgmagick repository from bitbucket
  • run python setup.py install again within the pgmagick directory

نصائح أخرى

It looks like versions incompatibility problem, try using boost-1.34

When you ran configure, I'm assuming you executed it as ./configure --enable-shared=yes (note the parameter). If you did that (like the tutorial says), I see no reason why it shouldn't be working. If you didn't, this may help.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top