PCL1.12.1无效的宏定义BOOST_DEFINITIONS -DBOOST_ALL_NO_LIB

PCL1.12.1 无效的宏定义BOOST_DEFINITIONS -DBOOST_ALL_NO_LIB

问题

我在Windows10系统上使用PCL-1.12.1-AllInOne-msvc2019-win64安装了PCL1.12.1库。

在编译其他项目时,CMake使用了find_package( PCL 1.12.1 REQUIRED ),打开.sln后发现有无效的宏定义“BOOST_ALL_NO_LIB-DBOOST_ALL_NO_LIB”。

解决方法

找到PCL1.12.1安装文件夹下的PCLConfig.cmake。
打开定位到第130行,将if(WIN32 AND NOT MINGW)替换成if(WIN32 AND NOT MINGW AND NOT “${BOOST_DEFINITIONS}” MATCHES “BOOST_ALL_NO_LIB”)
保存,重新CMake,vs打开解决方案发现问题已解决。

(去掉)if(WIN32 AND NOT MINGW)
(换成)if(WIN32 AND NOT MINGW AND NOT "${BOOST_DEFINITIONS}" MATCHES "BOOST_ALL_NO_LIB")
        string(APPEND BOOST_DEFINITIONS -DBOOST_ALL_NO_LIB)
  endif()

你可能感兴趣的:(PCL,linux)