解决困难的编译问题

时间:2014-10-11 06:12:48

标签: osx-mavericks glew ros

美好的一天,

首先,我有一个运行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文件中有效,但不是在他们的?可能导致此问题的原因

2 个答案:

答案 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/

现在编译得很好。