美好的一天,
首先,我有一个运行Mavericks的mac,我正在尝试构建PCL(Point Cloud Library)作为ROS的一部分。
这是失败的命令:
cd /Users/X/ros_catkin_ws/build_isolated/pcl_ros && /Users/X/ros_catkin_ws/install_isolated/env.sh cmake -vd /Users/X/ros_catkin_ws/src/perception_pcl/pcl_ros -DCATKIN_DEVEL_PREFIX=/Users/X/ros_catkin_ws/devel_isolated/pcl_ros -DCMAKE_INSTALL_PREFIX=/Users/X/ros_catkin_ws/install_isolated -DCMAKE_BUILD_TYPE=Release
使用:
CMake Error at /usr/local/share/pcl-1.8/PCLConfig.cmake:47 (message):
simulation is required but glew was not found
Call Stack (most recent call first):
/usr/local/share/pcl-1.8/PCLConfig.cmake:500 (pcl_report_not_found)
/usr/local/share/pcl-1.8/PCLConfig.cmake:663 (find_external_library)
CMakeLists.txt:8 (find_package)
现在,我已经尽力调试了这个。在线查看,我注意到这种情况正在发生,因为在小牛队中,不再有GLEW.framework https://github.com/PointCloudLibrary/pcl/issues/492
因此,我通过brew安装它,但我仍然遇到同样的问题。现在,我在想,也许cmake找不到它,所以我创建了自己的cmake项目,并尝试添加find_package(glew)。它似乎在这里找到了包裹:
-- Found GLEW: /usr/local/include
因此,我在$ PATH变量中包含了/ usr / local / include。然而,它似乎再次出现同样的错误。我有点迷失在这里,我不知道如何继续。 我猜测在上面的命令中,似乎某种程度上env.sh似乎改变了环境变量,使得它无法找到glew。
有什么想法吗?
编辑: 更荒谬。我创建了一个CMake文件并包含了find_package(PCL)。它完美地运作。 WTF?它甚至说它发现了glew
Found Glew: -framework GLEW;-framework Cocoa
为什么它在我的Cmake文件中有效,但不是在他们的?可能导致此问题的原因
答案 0 :(得分:3)
杂种。我去了pcl_ros文件夹,并且glew include目录指向Glew.Framework,从OSX 10.8开始不推荐使用它!
Scumbag Mavericks!我只是将它指向正确的glew include目录,对我而言是:/usr/local/Cellar/glew/1.11.0/include/GL
答案 1 :(得分:1)
与在OS X 10.10上遇到的用户ovfstack相同。编译ros indigo时,我发现/usr/local/share/pcl-1.8/PCLConfig.cmake
已被弃用。
我在/usr/local/Cellar/glew/1.11.0/include/
下通过自制软件安装了glew,并在上面提到的cmake文件中更改了行415
/System/Library/Frameworks/GLEW.framework/Versions/A/Headers
到
/usr/local/Cellar/glew/1.11.0/include/
现在编译得很好。