嗨stackoverflow系列
我正在尝试让vtk与qt一起工作。我应该承认我是新手,所以轻松一点。我正在尝试自己学习c++,并选择了以下配置来使我入门。
操作系统:Windows 7 Ultimate
工具箱:QT 5.3.2
IDE:QT Creator 3.2.1
VTK:6.3.0
我将VTK下载并解压缩到计算机上的“C:\ vtk-6.3.0”。我按照VTK's website上给出的说明使用cmake构建VTK。我给cmake了源代码“C:/vtk-6.3.0”的位置,并指定了构建库“C:/ vtk / bin”的位置。
认为一切都进行得很顺利,所以我进行了一个最简单的示例,一个没有ui的示例。我从here得到了例子
RenderWindowNoUiFile.cxx
#include <QApplication>
#include <vtkSmartPointer.h>
#include <vtkSphereSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>
#include <QVTKWidget.h>
int main(int argc, char** argv)
{
QApplication app(argc, argv);
QVTKWidget widget;
widget.resize( 256, 256 );
vtkSmartPointer<vtkSphereSource> sphereSource =
vtkSmartPointer<vtkSphereSource>::New();
vtkSmartPointer<vtkPolyDataMapper> sphereMapper =
vtkSmartPointer<vtkPolyDataMapper>::New();
sphereMapper->SetInputConnection( sphereSource->GetOutputPort() );
vtkSmartPointer<vtkActor> sphereActor =
vtkSmartPointer<vtkActor>::New();
sphereActor->SetMapper( sphereMapper );
vtkSmartPointer<vtkRenderer> renderer =
vtkSmartPointer<vtkRenderer>::New();
renderer->AddActor( sphereActor );
widget.GetRenderWindow()->AddRenderer( renderer );
widget.show();
app.exec();
return EXIT_SUCCESS;
}
我手动添加了.pro文件RenderWindowNoUiFile.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = RenderWindowNoUiFile
TEMPLATE = app
SOURCES += RenderWindowNoUiFile.cxx
INCLUDEPATH += C:\VTK\bin
我观察到qt在所有头文件下划线,当我运行程序时出现错误Projects\RenderWindowNoUiFile\RenderWindowNoUiFile.cxx:3: error: vtkSmartPointer.h: No such file or directory
#include <vtkSmartPointer.h>
^
请我做错了什么?当我搜索任何头文件时,会在“C:\ vtk \ bin”或“C:\ vtk-6.3.0”文件夹中的不同位置找到它们。
请如何解决这个问题?我可以将所有头文件放在一个文件夹中,以便可以在.pro文件中引用它吗?
例如,如果我可以在名为“C:\ vtk \ header”的目录中获取所有头文件,则可以在我的.pro文件中将其称为
INCLUDEPATH += C:\vtk\header
最佳答案
您的注释有点触动了它,“我可以将所有标题放在一个目录中吗?”这是设置INCLUDEPATH,但是您没有正确设置它。
您在做什么有一些问题。
关于注释,请选择安装目标:使用cmake,您可以设置一个选项来更改将二进制文件安装到的位置。因此,使用cmake的过程如下:
1)将源文件解压缩到您喜欢的目录中。
2)运行cmake构建文件夹(您将其设置为bin)。您所做的工作令人困惑,因为build文件夹将包含所有内容:不仅包含二进制文件,还包含 header 和其他安装内容。我通常称其为“构建”
3)cmake配置完成后,可能会提示您进行更多配置。在这里您可能要为VTK配置Qt。在此步骤中,您告诉cmake Qt cmake文件夹在哪里,以便您可以配置VTK来构建Qt内容
4)现在,您可以更改默认安装路径。默认情况下,当您使用Visual Studio构建INSTALL项目时(我将在下面进行描述),它将安装在程序文件中的某个位置。您可以通过将CMAKE_INSTALL_PREFIX设置为所需的值来更改此设置。例如:C:\ VTK \ install
5)单击生成以生成Visual Studio项目文件或Make文件,具体取决于您的构建配置。
6)对于Visual Studio:在build目录中打开解决方案并全部构建。完成此操作后,要安装文件(#4),请运行INSTALL项目。
7)对于Make文件:运行make(如果您有多个内核,请使用-jX,其中X是内核数的两倍),然后进行make install(不要在make install中使用-j)
好的,现在您已经编译并安装了VTK发行版。现在,您应该在Qt .pro文件中修复路径。
例如:
INSTALLPATH+=C:/VTK/install/include
我不知道您需要哪个库,但是在下面您应该看到模式:
LIBS+=-LC:/VTK/install/lib \
-lvtkRenderingCore-6.3
现在,在此之后,由于您具有动态生成,因此需要将.dll文件复制到您从Qt项目创建的exe文件旁边。
祝好运!
关于c++ - Qt无法使用VTK库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34483571/