开源改变世界

配置脚本无法定位 boost::python #1007

推推 grbl 3年前 (2023-01-30) 162次浏览
关闭
dkiziridis 打开了这个问题 2020 年 12 月 23 日 · 7条评论
关闭

配置脚本无法定位 boost::python#1007

dkiziridis 打开了这个问题 2020 年 12 月 23 日 · 7条评论

注释

配置脚本无法定位 boost::python #1007
吉齐里迪斯 评论了 2020 年 12 月 23 日  

在 Arch Linux 上从源代码构建时,出现以下错误:

提升版本 1.75.0

checking for Python libraries... -lpthread -ldl  -lutil
checking whether the Boost::Python headers are available... yes
checking for boost::python shared library... 
configure: error: boost::python is required to build LinuxCNC

以下是我重现该问题所遵循的步骤:

  1. 补丁-Np2 -i libtirpc.patch
  2. ./autogen.sh
  3. ./configure –with-realtime=uspace –without-libmodbus –prefix=/usr –with-python=/usr/bin/python2.7 –enable-non-distributable=yes

安装了boostpython依赖项。

即:
‘intltool’
‘python2-yapps2’
‘bwidget’
‘tkimg’
‘tclx’
‘python2-gtkglext’

Arch Linux 软件包页面
libtirpc.patch

配置脚本无法定位 boost::python #1007
合作者

配置测试在这里:

AC_MSG_CHECKING [用于 boost::python 共享库]

 

指定的地方有没有指定的文件(不知道是不是Python版本问题?)

配置脚本无法定位 boost::python #1007

我有完全相同的问题。如果有人找到能够再次安装 linuxcnc 的原因,那就太好了。

配置脚本无法定位 boost::python #1007
合作者

当你说“安装”时,你的意思是“编译”吗?

如果您手动运行上述测试,您会发现什么?

配置脚本无法定位 boost::python #1007
乌维绍特 评论了 2021 年 1 月 31 日  

尽管我对 Autotools 一无所知,但还是想在这里提供帮助。

Arch 上的boost软件包安装了以下python在其路径组件中的文件:

/usr/include/boost/mpi/python.hpp
/usr/include/boost/mpi/python/
/usr/include/boost/mpi/python/config.hpp
/usr/include/boost/mpi/python/serialize.hpp
/usr/include/boost/mpi/python/skeleton_and_content.hpp
/usr/include/boost/parameter/aux_/python/
/usr/include/boost/parameter/aux_/python/invoker.hpp
/usr/include/boost/parameter/aux_/python/invoker_iterate.hpp
/usr/include/boost/parameter/python.hpp
/usr/include/boost/python.hpp
/usr/include/boost/python/
/usr/include/boost/python/arg_from_python.hpp
/usr/include/boost/python/args.hpp
/usr/include/boost/python/args_fwd.hpp
/usr/include/boost/python/back_reference.hpp
/usr/include/boost/python/base_type_traits.hpp
/usr/include/boost/python/bases.hpp
/usr/include/boost/python/borrowed.hpp
/usr/include/boost/python/call.hpp
/usr/include/boost/python/call_method.hpp
/usr/include/boost/python/cast.hpp
/usr/include/boost/python/class.hpp
/usr/include/boost/python/class_fwd.hpp
/usr/include/boost/python/converter/
/usr/include/boost/python/converter/arg_from_python.hpp
/usr/include/boost/python/converter/arg_to_python.hpp
/usr/include/boost/python/converter/arg_to_python_base.hpp
/usr/include/boost/python/converter/as_to_python_function.hpp
/usr/include/boost/python/converter/builtin_converters.hpp
/usr/include/boost/python/converter/constructor_function.hpp
/usr/include/boost/python/converter/context_result_converter.hpp
/usr/include/boost/python/converter/convertible_function.hpp
/usr/include/boost/python/converter/from_python.hpp
/usr/include/boost/python/converter/implicit.hpp
/usr/include/boost/python/converter/obj_mgr_arg_from_python.hpp
/usr/include/boost/python/converter/object_manager.hpp
/usr/include/boost/python/converter/pointer_type_id.hpp
/usr/include/boost/python/converter/pyobject_traits.hpp
/usr/include/boost/python/converter/pyobject_type.hpp
/usr/include/boost/python/converter/pytype_function.hpp
/usr/include/boost/python/converter/pytype_object_mgr_traits.hpp
/usr/include/boost/python/converter/registered.hpp
/usr/include/boost/python/converter/registered_pointee.hpp
/usr/include/boost/python/converter/registrations.hpp
/usr/include/boost/python/converter/registry.hpp
/usr/include/boost/python/converter/return_from_python.hpp
/usr/include/boost/python/converter/rvalue_from_python_data.hpp
/usr/include/boost/python/converter/shared_ptr_deleter.hpp
/usr/include/boost/python/converter/shared_ptr_from_python.hpp
/usr/include/boost/python/converter/shared_ptr_to_python.hpp
/usr/include/boost/python/converter/to_python_function_type.hpp
/usr/include/boost/python/copy_const_reference.hpp
/usr/include/boost/python/copy_non_const_reference.hpp
/usr/include/boost/python/data_members.hpp
/usr/include/boost/python/def.hpp
/usr/include/boost/python/def_visitor.hpp
/usr/include/boost/python/default_call_policies.hpp
/usr/include/boost/python/detail/
/usr/include/boost/python/detail/aix_init_module.hpp
/usr/include/boost/python/detail/api_placeholder.hpp
/usr/include/boost/python/detail/borrowed_ptr.hpp
/usr/include/boost/python/detail/caller.hpp
/usr/include/boost/python/detail/config.hpp
/usr/include/boost/python/detail/construct.hpp
/usr/include/boost/python/detail/convertible.hpp
/usr/include/boost/python/detail/copy_ctor_mutates_rhs.hpp
/usr/include/boost/python/detail/cv_category.hpp
/usr/include/boost/python/detail/dealloc.hpp
/usr/include/boost/python/detail/decorated_type_id.hpp
/usr/include/boost/python/detail/decref_guard.hpp
/usr/include/boost/python/detail/def_helper.hpp
/usr/include/boost/python/detail/def_helper_fwd.hpp
/usr/include/boost/python/detail/defaults_def.hpp
/usr/include/boost/python/detail/defaults_gen.hpp
/usr/include/boost/python/detail/dependent.hpp
/usr/include/boost/python/detail/destroy.hpp
/usr/include/boost/python/detail/enable_if.hpp
/usr/include/boost/python/detail/exception_handler.hpp
/usr/include/boost/python/detail/force_instantiate.hpp
/usr/include/boost/python/detail/if_else.hpp
/usr/include/boost/python/detail/indirect_traits.hpp
/usr/include/boost/python/detail/invoke.hpp
/usr/include/boost/python/detail/is_auto_ptr.hpp
/usr/include/boost/python/detail/is_shared_ptr.hpp
/usr/include/boost/python/detail/is_wrapper.hpp
/usr/include/boost/python/detail/is_xxx.hpp
/usr/include/boost/python/detail/make_keyword_range_fn.hpp
/usr/include/boost/python/detail/make_tuple.hpp
/usr/include/boost/python/detail/map_entry.hpp
/usr/include/boost/python/detail/mpl_lambda.hpp
/usr/include/boost/python/detail/msvc_typeinfo.hpp
/usr/include/boost/python/detail/none.hpp
/usr/include/boost/python/detail/not_specified.hpp
/usr/include/boost/python/detail/nullary_function_adaptor.hpp
/usr/include/boost/python/detail/operator_id.hpp
/usr/include/boost/python/detail/overloads_fwd.hpp
/usr/include/boost/python/detail/pointee.hpp
/usr/include/boost/python/detail/prefix.hpp
/usr/include/boost/python/detail/preprocessor.hpp
/usr/include/boost/python/detail/python22_fixed.h
/usr/include/boost/python/detail/python_type.hpp
/usr/include/boost/python/detail/raw_pyobject.hpp
/usr/include/boost/python/detail/referent_storage.hpp
/usr/include/boost/python/detail/result.hpp
/usr/include/boost/python/detail/scope.hpp
/usr/include/boost/python/detail/sfinae.hpp
/usr/include/boost/python/detail/signature.hpp
/usr/include/boost/python/detail/string_literal.hpp
/usr/include/boost/python/detail/target.hpp
/usr/include/boost/python/detail/translate_exception.hpp
/usr/include/boost/python/detail/type_list.hpp
/usr/include/boost/python/detail/type_list_impl.hpp
/usr/include/boost/python/detail/type_traits.hpp
/usr/include/boost/python/detail/unwind_type.hpp
/usr/include/boost/python/detail/unwrap_type_id.hpp
/usr/include/boost/python/detail/unwrap_wrapper.hpp
/usr/include/boost/python/detail/value_arg.hpp
/usr/include/boost/python/detail/value_is_shared_ptr.hpp
/usr/include/boost/python/detail/value_is_xxx.hpp
/usr/include/boost/python/detail/void_ptr.hpp
/usr/include/boost/python/detail/void_return.hpp
/usr/include/boost/python/detail/wrap_python.hpp
/usr/include/boost/python/detail/wrapper_base.hpp
/usr/include/boost/python/dict.hpp
/usr/include/boost/python/docstring_options.hpp
/usr/include/boost/python/enum.hpp
/usr/include/boost/python/errors.hpp
/usr/include/boost/python/exception_translator.hpp
/usr/include/boost/python/exec.hpp
/usr/include/boost/python/extract.hpp
/usr/include/boost/python/handle.hpp
/usr/include/boost/python/handle_fwd.hpp
/usr/include/boost/python/has_back_reference.hpp
/usr/include/boost/python/implicit.hpp
/usr/include/boost/python/import.hpp
/usr/include/boost/python/init.hpp
/usr/include/boost/python/instance_holder.hpp
/usr/include/boost/python/iterator.hpp
/usr/include/boost/python/list.hpp
/usr/include/boost/python/long.hpp
/usr/include/boost/python/lvalue_from_pytype.hpp
/usr/include/boost/python/make_constructor.hpp
/usr/include/boost/python/make_function.hpp
/usr/include/boost/python/manage_new_object.hpp
/usr/include/boost/python/module.hpp
/usr/include/boost/python/module_init.hpp
/usr/include/boost/python/numpy.hpp
/usr/include/boost/python/numpy/
/usr/include/boost/python/numpy/config.hpp
/usr/include/boost/python/numpy/dtype.hpp
/usr/include/boost/python/numpy/internal.hpp
/usr/include/boost/python/numpy/invoke_matching.hpp
/usr/include/boost/python/numpy/matrix.hpp
/usr/include/boost/python/numpy/ndarray.hpp
/usr/include/boost/python/numpy/numpy_object_mgr_traits.hpp
/usr/include/boost/python/numpy/scalars.hpp
/usr/include/boost/python/numpy/ufunc.hpp
/usr/include/boost/python/object.hpp
/usr/include/boost/python/object/
/usr/include/boost/python/object/add_to_namespace.hpp
/usr/include/boost/python/object/class.hpp
/usr/include/boost/python/object/class_detail.hpp
/usr/include/boost/python/object/class_metadata.hpp
/usr/include/boost/python/object/class_wrapper.hpp
/usr/include/boost/python/object/enum_base.hpp
/usr/include/boost/python/object/find_instance.hpp
/usr/include/boost/python/object/forward.hpp
/usr/include/boost/python/object/function.hpp
/usr/include/boost/python/object/function_doc_signature.hpp
/usr/include/boost/python/object/function_handle.hpp
/usr/include/boost/python/object/function_object.hpp
/usr/include/boost/python/object/inheritance.hpp
/usr/include/boost/python/object/inheritance_query.hpp
/usr/include/boost/python/object/instance.hpp
/usr/include/boost/python/object/iterator.hpp
/usr/include/boost/python/object/iterator_core.hpp
/usr/include/boost/python/object/life_support.hpp
/usr/include/boost/python/object/make_holder.hpp
/usr/include/boost/python/object/make_instance.hpp
/usr/include/boost/python/object/make_ptr_instance.hpp
/usr/include/boost/python/object/pickle_support.hpp
/usr/include/boost/python/object/pointer_holder.hpp
/usr/include/boost/python/object/py_function.hpp
/usr/include/boost/python/object/stl_iterator_core.hpp
/usr/include/boost/python/object/value_holder.hpp
/usr/include/boost/python/object/value_holder_fwd.hpp
/usr/include/boost/python/object_attributes.hpp
/usr/include/boost/python/object_call.hpp
/usr/include/boost/python/object_core.hpp
/usr/include/boost/python/object_fwd.hpp
/usr/include/boost/python/object_items.hpp
/usr/include/boost/python/object_operators.hpp
/usr/include/boost/python/object_protocol.hpp
/usr/include/boost/python/object_protocol_core.hpp
/usr/include/boost/python/object_slices.hpp
/usr/include/boost/python/opaque_pointer_converter.hpp
/usr/include/boost/python/operators.hpp
/usr/include/boost/python/other.hpp
/usr/include/boost/python/overloads.hpp
/usr/include/boost/python/override.hpp
/usr/include/boost/python/pointee.hpp
/usr/include/boost/python/proxy.hpp
/usr/include/boost/python/ptr.hpp
/usr/include/boost/python/pure_virtual.hpp
/usr/include/boost/python/raw_function.hpp
/usr/include/boost/python/refcount.hpp
/usr/include/boost/python/reference_existing_object.hpp
/usr/include/boost/python/register_ptr_to_python.hpp
/usr/include/boost/python/return_arg.hpp
/usr/include/boost/python/return_by_value.hpp
/usr/include/boost/python/return_internal_reference.hpp
/usr/include/boost/python/return_opaque_pointer.hpp
/usr/include/boost/python/return_value_policy.hpp
/usr/include/boost/python/scope.hpp
/usr/include/boost/python/self.hpp
/usr/include/boost/python/signature.hpp
/usr/include/boost/python/slice.hpp
/usr/include/boost/python/slice_nil.hpp
/usr/include/boost/python/ssize_t.hpp
/usr/include/boost/python/stl_iterator.hpp
/usr/include/boost/python/str.hpp
/usr/include/boost/python/suite/
/usr/include/boost/python/suite/indexing/
/usr/include/boost/python/suite/indexing/container_utils.hpp
/usr/include/boost/python/suite/indexing/detail/
/usr/include/boost/python/suite/indexing/detail/indexing_suite_detail.hpp
/usr/include/boost/python/suite/indexing/indexing_suite.hpp
/usr/include/boost/python/suite/indexing/map_indexing_suite.hpp
/usr/include/boost/python/suite/indexing/vector_indexing_suite.hpp
/usr/include/boost/python/tag.hpp
/usr/include/boost/python/to_python_converter.hpp
/usr/include/boost/python/to_python_indirect.hpp
/usr/include/boost/python/to_python_value.hpp
/usr/include/boost/python/tuple.hpp
/usr/include/boost/python/type_id.hpp
/usr/include/boost/python/with_custodian_and_ward.hpp
/usr/include/boost/python/wrapper.hpp
/usr/lib/cmake/boost_mpi_python-1.75.0/
/usr/lib/cmake/boost_mpi_python-1.75.0/boost_mpi_python-config-version.cmake
/usr/lib/cmake/boost_mpi_python-1.75.0/boost_mpi_python-config.cmake
/usr/lib/cmake/boost_mpi_python-1.75.0/libboost_mpi_python-variant-shared-py3.9.cmake
/usr/lib/cmake/boost_mpi_python-1.75.0/libboost_mpi_python-variant-static-py3.9.cmake
/usr/lib/cmake/boost_python-1.75.0/
/usr/lib/cmake/boost_python-1.75.0/boost_python-config-version.cmake
/usr/lib/cmake/boost_python-1.75.0/boost_python-config.cmake
/usr/lib/cmake/boost_python-1.75.0/libboost_python-variant-shared-py3.9.cmake
/usr/lib/cmake/boost_python-1.75.0/libboost_python-variant-static-py3.9.cmake
/usr/lib/libboost_mpi_python39.a
/usr/lib/libboost_python39.a

测试要使用的一个标头 ( boost/python/object_fwd.hpp) 安装在/usr/include/boost/python/.

Arch Linux 中还有第二个包:在其路径boost-libs中提供以下文件:python

/usr/lib/boost-python3.9/
/usr/lib/libboost_mpi_python39.so
/usr/lib/libboost_mpi_python39.so.1.75.0
/usr/lib/libboost_python3.so
/usr/lib/libboost_python39.so
/usr/lib/libboost_python39.so.1.75.0
/usr/lib/python3.9/
/usr/lib/python3.9/site-packages/
/usr/lib/python3.9/site-packages/boost/
/usr/lib/python3.9/site-packages/boost/__init__.py
/usr/lib/python3.9/site-packages/boost/__pycache__/
/usr/lib/python3.9/site-packages/boost/__pycache__/__init__.cpython-39.opt-1.pyc
/usr/lib/python3.9/site-packages/boost/__pycache__/__init__.cpython-39.opt-2.pyc
/usr/lib/python3.9/site-packages/boost/__pycache__/__init__.cpython-39.pyc
/usr/lib/python3.9/site-packages/boost/mpi.so

如果您可以提供有关如何运行该特定测试的说明,我将很乐意提供输出。

编辑:
尝试一些东西:

[uwe@cnc tmp]$ cat test.cpp 
#include <boost/python/object_fwd.hpp>
boost::python::object *test_object;

[uwe@cnc tmp]$ LANG=C g++ -o test test.cpp
In file included from /usr/include/boost/python/detail/prefix.hpp:13,
                 from /usr/include/boost/python/object_fwd.hpp:8,
                 from test.cpp:1:
/usr/include/boost/python/detail/wrap_python.hpp:57:11: fatal error: pyconfig.h: No such file or directory
   57 | # include <pyconfig.h>
      |           ^~~~~~~~~~~~
compilation terminated.

这个测试是不是太简单了,还是在boost中显示错误?

配置脚本无法定位 boost::python #1007

改进上面的测试似乎缺少 Python 的包含路径:

$ sudo find / -xdev -name pyconfig.h
/usr/include/python2.7/pyconfig.h
/usr/include/python3.9/pyconfig.h
$ cat test.cpp 
#include <boost/python/object_fwd.hpp>
boost::python::object *test_object;

int main() {
}

$ LANG=C g++ -o test -I/usr/include/python3.9/ test.cpp
$ echo $?
0

但我仍然不知道这是否是导致 Autoconf 测试失败的原因。

配置脚本无法定位 boost::python #1007

所以,我发现 Autoconf 创建了一个config.log. 此错误的相关部分是:

configure:10022: checking whether the Boost::Python headers are available
configure:10042: g++ -c -g -O2 -I/usr/include/python2.7  conftest.cpp >&5
configure:10042: $? = 0
configure:10050: result: yes
configure:10068: checking for boost::python shared library
configure:10085: g++ -o conftest -g -O2 -I/usr/include/python2.7   conftest.cpp  -lXinerama -ltirpc  -lpython2.7 -lboost_python >&5
/usr/bin/ld: cannot find -lboost_python
collect2: error: ld returned 1 exit status
configure:10085: $? = 1
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "LinuxCNC"
| #define PACKAGE_TARNAME "linuxcnc"
| #define PACKAGE_VERSION "2.8.1"
| #define PACKAGE_STRING "LinuxCNC 2.8.1"
| #define PACKAGE_BUGREPORT "emc-developers@lists.sourceforge.net"
| #define PACKAGE_URL ""
| #define HAVE_STDIO_H 1
| #define HAVE_STDLIB_H 1
| #define HAVE_STRING_H 1
| #define HAVE_INTTYPES_H 1
| #define HAVE_STDINT_H 1
| #define HAVE_STRINGS_H 1
| #define HAVE_SYS_STAT_H 1
| #define HAVE_SYS_TYPES_H 1
| #define HAVE_UNISTD_H 1
| #define STDC_HEADERS 1
| #define HAVE_CXX11 1
| #define HAVE_LIBTIRPC 1
| #define RTAPI_USPACE /**/
| #define RTDIR "/home/uwe/AUR/linuxcnc/src/linuxcnc-2.8.1/src"
| #define HIDRAW_H_USABLE /**/
| #define HAVE_LIBUSB10 yes
| #define MODULE_EXT ".so"
| #define EMC2_DEFAULT_NMLFILE "/usr/share/linuxcnc/linuxcnc.nml"
| #define EMC2_DEFAULT_TOOLTABLE ""
| #define EMC2_HOME "/usr"
| #define EMC2_BIN_DIR "/usr/bin"
| #define EMC2_TCL_DIR "/usr/lib/tcltk/linuxcnc"
| #define EMC2_HELP_DIR "/usr/share/doc/linuxcnc"
| #define EMC2_RTLIB_DIR "/usr/lib/linuxcnc/modules"
| #define EMC2_LANG_DIR "/usr/lib/tcltk/linuxcnc/msgs"
| #define EMC2_PO_DIR "/usr/share/locale"
| #define EMC2_CONFIG_DIR ""
| #define EMC2_NCFILES_DIR "/usr/share/linuxcnc/ncfiles"
| #define EMC2_IMAGE_DIR "/usr/share/linuxcnc"
| #define HAVE_SYS_IO_H 1
| #define HAVE_SYS_WAIT_H 1
| #define HAVE_SEMTIMEDOP 1
| #define LIBDL $LIBDL
| #define HAVE_CLOCK_NANOSLEEP 1
| #define HAVE_X11_EXTENSIONS_XINERAMA_H 1
| #define HAVE_LIBXINERAMA 1
| #define HAVE_READLINE_READLINE_H 1
| #define HAVE_READLINE_HISTORY_H 1
| #define HAVE_READLINE /**/
| #define HAVE_LOCALE_H 1
| #define HAVE_SETLOCALE 1
| #define HAVE_LIBINTL_H 1
| /* end confdefs.h.  */
| #include <boost/python/object_fwd.hpp>
| int
| main (void)
| {
| boost::python::object *test_object;
|   ;
|   return 0;
| }

在 Arch AUR 包页面的评论中,一些其他用户报告说他能够通过boost-python2从 AUR 安装包来解决问题。我可以确认这允许 LinuxCNC 构建。

配置脚本无法定位 boost::python #1007
合作者

我认为这是通过 python3 迁移修复的,如果没有请重新打开。