Qt5.8_VTK7.0_VS2015编译配置及测试中问题
来源:互联网 发布:淘宝客服刚去要学什么 编辑:程序博客网 时间:2024/06/05 12:40
最近在做一个基于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编译的问题。所以需要在代码前添加源文件。
最终测试代码为:
#include "vtkAutoInit.h" // 如果编译时编译的是OpenGL2,则下面就改为vtkRenderingOpenGL2VTK_MODULE_INIT(vtkRenderingOpenGL); // VTK was built with vtkRenderingOpenGLVTK_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
- Qt5.8_VTK7.0_VS2015编译配置及测试中问题
- qt5 opencv3.0 配置后,编译出错问题的解决方法
- QT5.4.2静态编译(包含QtWebKit)及配置方法
- qt5.4.0下配置opencv及demo测试
- 交叉编译qt5.7可能遇到的问题及解决
- 编译Qt5 Alpha中。。。
- VS2015+VTK7.1.1+QT5.8编译中缺少vtkGUISupportQt-7.1.dll等dll问题
- OGLStencil深度测试 模板测试 以及 Alpha混合_VS2015
- vs 中编译qt5 项目中文乱码问题
- 关于mac中Qt5.7编译出现的问题
- QT5.9.3安装及编译&与vs2013环境配置&opencv配置及调用
- Win7(64)+Qt5.5.1+OpenCv3.2+CMake3.5 环境配置过程中遇到的问题及解决方法
- ibox4412 编译QT5.6 问题
- Qt5.8交叉编译配置选项详解(./configure --help)
- Qt5.4+OpenCV3.0使用pkg-config进行配置编译
- QT5 中乱码问题
- qt5.8编译qtav
- qt5.8编译mysql
- 树链剖分 洛谷p3384
- Glide override 不起作用
- 项目的JDK设置 应与Tomcat的JDK设置保持一致
- Unity3D中加入简单粗暴的暂停
- VC++ TCP网络控制台程序
- Qt5.8_VTK7.0_VS2015编译配置及测试中问题
- Android逆向之旅---Native层的Hook神器Cydia Substrate使用详解
- 企业招聘程序员,最看重的5个方面
- C语言贪吃蛇
- 设计模式汇总
- mybatis foreach多次遍历问题
- C
- Fetch / ajax 不能获取response中的所有headers的解决方法(适用nginx)
- 括号的匹配问题