Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;找不到Boost(缺少:python)(找到版本1.58.0)";尝试在ros 2、windows 10上编译cv_bridge包时_Boost_Cmake_Boost Python_Ros2 - Fatal编程技术网

&引用;找不到Boost(缺少:python)(找到版本1.58.0)";尝试在ros 2、windows 10上编译cv_bridge包时

&引用;找不到Boost(缺少:python)(找到版本1.58.0)";尝试在ros 2、windows 10上编译cv_bridge包时,boost,cmake,boost-python,ros2,Boost,Cmake,Boost Python,Ros2,我一直在尝试在Windows上编译cv_bridge、Ros 2程序包(不是我的选择)。起初我有一个错误,指出boost lib不存在,所以我通过choco安装了boost-msvc-12,现在找到了一个版本,但没有python包。尝试在我的工作区上运行colcon build时的输出为: Starting >>> cv_bridge Starting >>> image_geometry --- stderr: cv_bridge CMake Error a

我一直在尝试在Windows上编译cv_bridge、Ros 2程序包(不是我的选择)。起初我有一个错误,指出boost lib不存在,所以我通过
choco
安装了
boost-msvc-12
,现在找到了一个版本,但没有python包。尝试在我的工作区上运行
colcon build
时的输出为:

Starting >>> cv_bridge
Starting >>> image_geometry
--- stderr: cv_bridge
CMake Error at C:/Program Files/CMake/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:146 (message):
  Could NOT find Boost (missing: python) (found version "1.58.0")
Call Stack (most recent call first):
  C:/Program Files/CMake/share/cmake-3.16/Modules/FindPackageHandleStandardArgs.cmake:393 (_FPHSA_FAILURE_MESSAGE)
  C:/Program Files/CMake/share/cmake-3.16/Modules/FindBoost.cmake:2162 (find_package_handle_standard_args)
  CMakeLists.txt:31 (find_package)


---
Failed   <<< cv_bridge  [ Exited with code 1 ]
Aborted  <<< image_geometry

Summary: 0 packages finished [4.03s]
  1 package failed: cv_bridge
  1 package aborted: image_geometry
  1 package had stderr output: cv_bridge
  3 packages not processed
启动>>>cv_桥
开始>>>图像\u几何体
---标准:cv_桥
C:/Program Files/CMake/share/CMake-3.16/Modules/FindPackageHandleStandardArgs处的CMake错误。CMake:146(消息):
找不到Boost(缺少:python)(找到版本“1.58.0”)
调用堆栈(最新调用优先):
C:/Program Files/CMake/share/CMake-3.16/Modules/FindPackageHandleStandardArgs.CMake:393(_FPHSA_FAILURE_MESSAGE)
C:/ProgramFiles/CMake/share/CMake-3.16/Modules/FindBoost.CMake:2162(查找包、句柄、标准参数)
CMakeLists.txt:31(查找包)
---

失败:1.58版本的二进制文件针对python 2.7.5构建/链接了boost_python(请参见
DEPENDENCY_VERSIONS.txt
)。对于1.67,它是Python 2.7.13。据我所知,没有3.x版本。然而,您的CMakeLists.txt似乎要求使用Python 3.7。此外,1.67 choco包似乎适用于不同于1.58版本的MSVC——您使用的是哪种编译器?
# find_package(Boost COMPONENTS Python REQUIRED)
# set(BOOST_ROOT, "C:/local/")
# set(Boost_INCLUDE_DIRS, "C:/local/boost_1_67_0")
# message( ${Boost_LIBRARY_DIRS} )

if(NOT ANDROID)
  find_package(PythonLibs 3.7 REQUIRED)
  if(PYTHONLIBS_VERSION_STRING VERSION_LESS 3)
    find_package(Boost  REQUIRED python)
  else()

    find_package(Boost REQUIRED)
    # set(Boost_INCLUDE_DIRS, "C:/local/boost_1_58_0/")
    # set(Boost_LIBRARY_DIRS, "C:/local/boost_1_58_0/stage/lib/")

    if(Boost_VERSION LESS 106500)
      set(_Boost_PYTHON_HEADERS "boost/python.hpp")
      find_package(Boost REQUIRED python)
    else()
      # This is a bit of a hack to suppress a warning
      #   No header defined for python3; skipping header check
      # Which should only affect Boost versions < 1.67
      # Resolution for newer versions:
      #  https://gitlab.kitware.com/cmake/cmake/issues/16391
      if (Boost_VERSION LESS 106700)
        set(_Boost_PYTHON3_HEADERS "boost/python.hpp")
      endif()
      find_package(Boost COMPONENTS python3 REQUIRED)
    endif()
  endif()
else()
  find_package(Boost REQUIRED)
endif()

find_package(sensor_msgs REQUIRED)
find_package(OpenCV 3 REQUIRED
  COMPONENTS
    opencv_core
    opencv_imgproc
    opencv_imgcodecs
  CONFIG
)

include_directories(include ${Boost_INCLUDE_DIRS})