点云技术相关产学研社区

 找回密码
 立即注册加入PCL中国点云技术相关产学研社区

扫一扫,访问微社区

查看: 4103|回复: 5

pcl_visualizer_demo.cpp编译失败,求解原因 ?

[复制链接]
发表于 2013-9-25 20:52:57 | 显示全部楼层 |阅读模式
按照官网的教程进行到可视化的PCL Visulizer可视化类,头一次出现了调试失败的问题。
pcl_visualizer_demo.cpp. 和CMake的内容,均是按照官网复制的,在CMake下也generate成功了。
可是调试后,却出现了以下问题。
论坛上也有类似的帖子,但是我俩出现的问题不太一样,希望各位前辈扶植一下新人,多谢了。
看看到底是哪个小细节,出了问题。


1>------ 已启动生成: 项目: pcl_visualizer_demo, 配置: Debug Win32 ------
1>正在编译...
1>pcl_visualizer_demo.cpp
1>C:\Program Files\PCL 1.5.1\3rdParty\Flann\include\flann/util/logger.h(66) : warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(237) : 参见“fopen”的声明
1>..\source\pcl_visualizer_demo.cpp(167) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : 参见“sprintf”的声明
1>..\source\pcl_visualizer_demo.cpp(184) : warning C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(366) : 参见“sprintf”的声明
1>..\source\pcl_visualizer_demo.cpp(260) : error C2065: “uint8_t”: 未声明的标识符
1>..\source\pcl_visualizer_demo.cpp(260) : error C2146: 语法错误 : 缺少“;”(在标识符“r”的前面)
1>..\source\pcl_visualizer_demo.cpp(260) : error C3861: “r”: 找不到标识符
1>..\source\pcl_visualizer_demo.cpp(260) : error C3861: “g”: 找不到标识符
1>..\source\pcl_visualizer_demo.cpp(260) : error C3861: “b”: 找不到标识符
1>..\source\pcl_visualizer_demo.cpp(275) : error C2065: “r”: 未声明的标识符
1>..\source\pcl_visualizer_demo.cpp(276) : error C2065: “g”: 未声明的标识符
1>..\source\pcl_visualizer_demo.cpp(276) : error C2065: “b”: 未声明的标识符
1>..\source\pcl_visualizer_demo.cpp(282) : error C2065: “r”: 未声明的标识符
1>..\source\pcl_visualizer_demo.cpp(283) : error C2065: “g”: 未声明的标识符
1>..\source\pcl_visualizer_demo.cpp(287) : error C2065: “g”: 未声明的标识符
1>..\source\pcl_visualizer_demo.cpp(288) : error C2065: “b”: 未声明的标识符
1>C:\Program Files\PCL 1.5.1\include\pcl-1.5\pcl/search/kdtree.h(165) : warning C4373: “pcl::search::KdTree<PointT>::radiusSearch”: 虚函数重写“pcl::search::Search<PointT>::radiusSearch”,当参数只在 const/volatile 限定符上有差异时,早期版本的编译器未进行重写
1>        with
1>        [
1>            PointT=pcl::PointXYZRGB
1>        ]
1>        C:\Program Files\PCL 1.5.1\include\pcl-1.5\pcl/search/search.h(310) : 参见“pcl::search::Search<PointT>::radiusSearch”的声明
1>        with
1>        [
1>            PointT=pcl::PointXYZRGB
1>        ]
1>        ..\source\pcl_visualizer_demo.cpp(299): 参见对正在编译的类 模板 实例化“pcl::search::KdTree<PointT>”的引用
1>        with
1>        [
1>            PointT=pcl::PointXYZRGB
1>        ]
1>生成日志保存在“file://e:\pcl_visualizer_demo\camke-bin\pcl_visualizer_demo.dir\Debug\BuildLog.htm”
1>pcl_visualizer_demo - 12 个错误,4 个警告
2>------ 已跳过生成: 项目: ALL_BUILD, 配置: Debug Win32 ------
2>没有为此解决方案配置选中要生成的项目
========== 生成: 成功 0 个,失败 1 个,最新 1 个,跳过 1 个 ==========


回复

使用道具 举报

发表于 2013-9-25 22:03:27 | 显示全部楼层
错误原因,“uint8_t”: 未声明的标识符:
解决办法:在前面添加Boost作用域 如 boost::uint8_t
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-25 22:14:01 | 显示全部楼层
Sunshine 发表于 2013-9-25 22:03
错误原因,“uint8_t”: 未声明的标识符:
解决办法:在前面添加Boost作用域 如 boost::uint8_t ...

我的cpp文件都是从官网上下的,之前从来都没出现过生成不了exe文件的问题,请问一下,英文官网的内容其中少部分也有问题吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-25 22:14:56 | 显示全部楼层
Sunshine 发表于 2013-9-25 22:03
错误原因,“uint8_t”: 未声明的标识符:
解决办法:在前面添加Boost作用域 如 boost::uint8_t ...

我的cpp文件都是从官网上下的,之前从来都没出现过生成不了exe文件的问题,请问一下,英文官网的内容其中少部分也有问题吗?
回复 支持 反对

使用道具 举报

发表于 2013-9-26 09:28:25 | 显示全部楼层
官网上发布的代码,应该都是经过调试运行成功过的,用户的使用的过程当中,出现一些编译或是运行的错误,一般是与自己平台的配置环境有关,所以这个要综合考虑。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-26 15:37:39 | 显示全部楼层
Sunshine 发表于 2013-9-26 09:28
官网上发布的代码,应该都是经过调试运行成功过的,用户的使用的过程当中,出现一些编译或是运行的错误,一 ...

谢谢你的回答,确实是这样,用VS2008还真是多灾多难啊。
已经调试成功了。
主要原因是vs2008中有些宏定义未指定,需要在D:\Program Files\Microsoft Visual Studio 9.0\VC\include目录下新建文件stdin.h文件,并在编译有问题的文件中添加包含文件 #include <stdin.h>。
stdin文件内容:
#ifndef _STDINT_H_ALL_
#define _STDINT_H_ALL_
typedef signed char       int8_t;
typedef signed short      int16_t;
typedef signed int        int32_t;
typedef unsigned char     uint8_t;
typedef unsigned short    uint16_t;
typedef unsigned int      uint32_t;
typedef long long         int64_t;
typedef unsigned long long uint64_t;
#endif
论坛之前的帖子,可以作为参考
http://www.pclcn.org/bbs/forum.p ... ;tid=398&extra=
感谢海非思同学对我的问题的耐心解答,非常感谢。
回复 支持 反对

使用道具 举报

本版积分规则

QQ|小黑屋|点云技术相关产学研社区 ( 陕ICP备13001629号 )

GMT+8, 2024-5-19 20:52 , Processed in 1.133946 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表