Qt5.8_VTK7.0_VS2015编译配置及测试中问题
2017-08-24 14:23
573 查看
最近在做一个基于Qt的三维点云软件,涉及到点云的显示及操作,所以要在Qt中完成QVTKWidget插件的添加。在浮躁的心态下折腾了两天才成功的实现Qt5.8_VTK7.0_VS2015的编译配置及测试。
整个过程中反思和收获并存:
反思:过程过于浮躁,查阅资料时不够耐心!!
收获:新的知识(VTK/CMake/快速提取某一文件夹中文件名等)
1.配置
整个配置过程主要参考[dedje]的文章,虽然所用的版本都不一样,但整个过程还是相同的。只是针对下面过程进行一个详细说明。
该过程中拷贝的QVTKWidgetPlugin.dll和QVTKWidgetPlugin.lib都位于解决方案中的相关目录,我的是D:\Software\Qt\VTK7.0_sln\bin\Release和D:\Software\Qt\VTK7.0_sln\lib\Release。
2.测试中问题
按照[dedje]博友给出的测试代码,测试还是出现问题
,最终查阅资料发现是因为VS编译的问题。所以需要在代码前添加源文件。
最终测试代码为:
但紧接着又出现以下问题:(搞死了…..)
对于该问题,只需要到相关VTK7.0的bin文件夹中将相关文件拷贝到运行目录中的Debug文件夹下就可以了。
最终完美实现(^o^)/
对于无法定位程序输入点问题,参考了博友xiao_PuZi。
C++/CLI的程序,用到了OCCI连接数据库,程序编译没问题,一运行就提示:无法定位程序输入点*于动态链接库oraocci12.dll上。
这个时候,需要先确定你的DLL文件已经放到正确的文件夹下,正确的文件位置是:C:\WINDOWS\system32。也有人说64位系统,需要放到C:\WINDOWS\SysWOW64路径下,实测并不需要。
上面的方法不行的话,可以试下:
①、将出问题的dll文件放到程序的Debug或Release文件夹下;
②、将要用的dll文件所在的路径,添加的系统的Path环境变量中。
小知识点:
怎样快速提取文件夹中所有文件的名字:
为什么会突然讲到这个小技能,因为发现像VTK这种库在添加依赖项时是一件非常头疼的事情(其依赖项达到上百个),如果一个个输入是非常耗时间的。
找到VTK依赖项文件夹
2.在该文件夹下新建一个TXT文档
如:快速提取文件名.txt,并在该文档中添加一些内容:
(注意空格)
3.将文档后缀名改为“.bat”,确认后直接运行,就会在文件夹中生成了LIST.TXT文档
可能会生成一些无关文件,只需把相关文件名删除即可。
注:中等笨办法,如果有博友有更好的方法,希望可以分享下。
参考:
1:http://blog.csdn.net/dedje/article/details/42025143
2:http://blog.csdn.net/xiao_puzi/article/details/69663470
3:https://stackoverflow.com/questions/18642155/no-override-found-for-vtkpolydatamapper
4:http://jingyan.baidu.com/article/d71306350d083913fdf47592.html
整个过程中反思和收获并存:
反思:过程过于浮躁,查阅资料时不够耐心!!
收获:新的知识(VTK/CMake/快速提取某一文件夹中文件名等)
以下是整个过程中一些注意事项和测试中遇到的问题:
1.配置
整个配置过程主要参考[dedje]的文章,虽然所用的版本都不一样,但整个过程还是相同的。只是针对下面过程进行一个详细说明。
该过程中拷贝的QVTKWidgetPlugin.dll和QVTKWidgetPlugin.lib都位于解决方案中的相关目录,我的是D:\Software\Qt\VTK7.0_sln\bin\Release和D:\Software\Qt\VTK7.0_sln\lib\Release。
2.测试中问题
按照[dedje]博友给出的测试代码,测试还是出现问题
,最终查阅资料发现是因为VS编译的问题。所以需要在代码前添加源文件。
最终测试代码为:
#include "vtkAutoInit.h" // 如果编译时编译的是OpenGL2,则下面就改为vtkRenderingOpenGL2 VTK_MODULE_INIT(vtkRenderingOpenGL); // VTK was built with vtkRenderingOpenGL VTK_MODULE_INIT(vtkInteractionStyle); #include <QtWidgets/QApplication> #include <vtkSmartPointer.h> #include <vtkSphereSource.h> #include <vtkPolyDataMapper.h> #include <vtkActor.h> #include <vtkImageViewer.h> #include <vtkRenderWindowInteractor.h> #include <vtkInteractorStyleImage.h> #include <vtkJPEGReader.h> #include <vtkRenderer.h> #include <QVTKWidget.h> int main(int argc, char *argv[]) { QApplication a(argc, argv); QVTKWidget widget; widget.resize(256, 256); vtkSmartPointer<vtkSphereSource>sphereSource = vtkSmartPointer<vtkSphereSource>::New(); sphereSource->Update(); vtkSmartPointer<vtkPolyDataMapper>sphereMapper = vtkSmartPointer<vtkPolyDataMapper>::New(); sphereMapper->SetInputConnection(sphereSource->GetOutputPort()); vtkSmartPointer<vtkActor>sphereActor = vtkSmartPointer<vtkActor>::New(); sphereActor->SetMapper(sphereMapper); vtkSmartPointer<vtkRenderWindow>renderWindow = vtkSmartPointer<vtkRenderWindow>::New(); vtkSmartPointer<vtkRenderer>renderer = vtkSmartPointer<vtkRenderer>::New(); renderWindow->AddRenderer(renderer); renderer->AddActor(sphereActor); renderer->ResetCamera(); widget.SetRenderWindow(renderWindow); widget.show(); return a.exec(); }
但紧接着又出现以下问题:(搞死了…..)
对于该问题,只需要到相关VTK7.0的bin文件夹中将相关文件拷贝到运行目录中的Debug文件夹下就可以了。
最终完美实现(^o^)/
对于无法定位程序输入点问题,参考了博友xiao_PuZi。
C++/CLI的程序,用到了OCCI连接数据库,程序编译没问题,一运行就提示:无法定位程序输入点*于动态链接库oraocci12.dll上。
这个时候,需要先确定你的DLL文件已经放到正确的文件夹下,正确的文件位置是:C:\WINDOWS\system32。也有人说64位系统,需要放到C:\WINDOWS\SysWOW64路径下,实测并不需要。
上面的方法不行的话,可以试下:
①、将出问题的dll文件放到程序的Debug或Release文件夹下;
②、将要用的dll文件所在的路径,添加的系统的Path环境变量中。
小知识点:
怎样快速提取文件夹中所有文件的名字:
为什么会突然讲到这个小技能,因为发现像VTK这种库在添加依赖项时是一件非常头疼的事情(其依赖项达到上百个),如果一个个输入是非常耗时间的。
找到VTK依赖项文件夹
2.在该文件夹下新建一个TXT文档
如:快速提取文件名.txt,并在该文档中添加一些内容:
(注意空格)
3.将文档后缀名改为“.bat”,确认后直接运行,就会在文件夹中生成了LIST.TXT文档
可能会生成一些无关文件,只需把相关文件名删除即可。
注:中等笨办法,如果有博友有更好的方法,希望可以分享下。
参考:
1:http://blog.csdn.net/dedje/article/details/42025143
2:http://blog.csdn.net/xiao_puzi/article/details/69663470
3:https://stackoverflow.com/questions/18642155/no-override-found-for-vtkpolydatamapper
4:http://jingyan.baidu.com/article/d71306350d083913fdf47592.html
相关文章推荐
- qt 5.9 + vs2015+下载、安装、配置 中出现的所有问题-2017/10/13
- VS2015-QT安装配置问题
- QT5.8与VS2015相关配置与下载链接
- QT5.8+VS2015环境配置(全)
- 在VS2015中配置QT遇到的问题
- VTK + QT + VS 编译安装配置
- win7运行第一个opencv程序,基于opencv3.2,官方vc14编译版本,QT5.8 VS2015平台
- QT5.7静态编译(使用VS2013与VS2015编译,XP可用,有详细configure脚本。VS下Qt插件的配置。编译选项加上-mp可以开启多线程编译,编译速度提高2倍以上)
- Qt 5.6 5.8 vs2015 编译静态库版本(有全部的截图)good
- 在VS2015中配置和测试DCMTK遇到的问题
- qt5.8 + vs2015 编译 qoci 驱动 Project ERROR: Library 'oci' is not defined
- VS 2015 + Qt 5.8 环境配置
- VS2015 + PCL1.8.0 + QT_5.62 + cmake3.82 编译VTK7.1,生成QVTKWidgetPlugin.dll
- QT5.8和VS2015的配置
- VS2015,qt 5.7.1,编译使用QString的toWCharArray时出现无法解析的toWCharArray(unsigned char*)的问题,无法正确识别WChar_t类型
- VTK的安装配置(一)——使用vs2015,QT5.9
- VS2015 + Qt5.8 环境配置
- VS2015 + openCV3.1.0 + win10 64位 配置问题
- 解决VS2015安装后stdio.h ucrtd.lib等文件无法识别问题,即include+lib环境变量配置
- vs 中编译qt5 项目中文乱码问题