1

我在 vs 2010 中使用 PCL 库。我不使用 CMake,我包含所有 dll、libs 和包含文件夹。

我编写了简单的程序来填充 PointCloud 实例中的半球点云。这是我的超级简单代码:

#include <iostream>
#include <pcl\point_cloud.h>
#include <pcl\impl\point_types.hpp>
#include <cmath>

using namespace pcl;
void AddPointsToCloud(PointCloud<PointXYZRGB>& cloud);

int main ()
{
   PointCloud<PointXYZRGB> cloud;

   AddPointsToCloud(cloud);
   return 0;
}




void AddPointsToCloud(PointCloud<PointXYZRGB>& cloud)
{
    double R =2;
    int nTheta = 20; //number of grid points
    double dTheata =  0.5*M_PI / (nTheta - 1);

    int nPhi = 20;
    double dPhi =  2 * M_PI / (nPhi - 1);

    for (int i = 0 ; i < nTheta ; i++ )
    {
       for (int j = 0 ; j < nPhi ; j++)
       {
          double x = R * sin(i*dTheata) * cos(j* dPhi );
          double y = R * sin(i*dTheata) * sin(j* dPhi );
          double z = R * cos(i*dTheata);

          PointXYZRGB p;
          p.x = x;
          p.y = y;
          p.z = z;

          p.r = static_cast<uint8_t>(255 * x / R);
          p.g = static_cast<uint8_t>(255 *  y / R);
          p.b = static_cast<uint8_t>(255 * z / R);


          cloud.push_back(p);
      }
   }
 }

现在,当我在 Visual Studio 2010 中构建时,出现以下错误:

错误 2 错误 C2146:语法错误:缺少 ';' 在标识符“特征”之前 c:\program files (x86)\pcl 1.6.0\include\pcl-1.6\pcl\impl\point_types.hpp 1185

错误 3 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 c:\program files (x86)\pcl 1.6.0\include\pcl-1.6\pcl\impl\point_types.hpp 1185

错误 4 错误 C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持默认整数 c:\program files (x86)\pcl 1.6.0\include\pcl-1.6\pcl\impl\point_types.hpp 1185

我不明白为什么,在构建项目之前我没有任何编译错误,并且
point_types.hpp (pcl头文件)中的一切都是正确的

请帮我

提前谢谢你

4

1 回答 1

1

我能够简化您的代码以获取错误。下面的代码导致我的编译器出错(这是 GCC,但错误与你的声明相同 - traits):

您是否尝试进一步简化代码?

#include <pcl/point_cloud.h>
#include <pcl/impl/point_types.hpp>
int main ()
{
   return 0;
}

查看在 PCL 中使用 point_types.hpp 的示例 - 没有直接使用它的示例。相反,在它被包含之前,预计会设置一些其他的东西。参见示例:添加您自己的自定义 PointT 类型

那里的最后一个代码示例包含以下内容:

#include <pcl/point_types.h>

point_cloud.hpp 通过以下包含在 point_cloud.h 中(因此不需要包含在您的应用程序中):

#include <pcl/impl/point_types.hpp>  // Include struct definitions
于 2013-10-07T10:43:30.673 回答