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()