对符号“ XGetWindowAttributes”的理解不足

问题描述

当我首先在qt Creator中使用vtk时,遇到了这个麻烦。我现在无法解决,要求一些帮助。 我关注了这个网站https://csuzhangxc.gitbooks.io/vtk-simple-tutorial/content/getting_started/the_first.html,但我知道了:

error: /usr/local/lib//libvtkRenderingOpenGL2-8.2.a(vtkXRenderWindowInteractor.cxx.o): undefined reference to symbol 'XGetwindowAttributes'
/usr/lib/x86_64-linux-gnu/libX11.so.6:-1: error: error adding symbols: DSO missing from command line

有人知道该怎么办吗?

该项目的一些文件如下: .pro:

QT       += core gui

greaterThan(QT_MAJOR_VERSION,4): QT += widgets

CONfig += c++11

DEFInes += QT_DEPRECATED_WARNINGS

INCLUDEPATH += /usr/local/include/vtk-8.2/

LIBS += -L/usr/local/lib/ \
        -lvtkGUISupportQt-8.2 \
        -lvtkIOImage-8.2 \
        -lvtkInteractionImage-8.2 \
        -lvtkRenderingcore-8.2 \
        -lvtkCommonExecutionModel-8.2 \
        -lvtkCommonCore-8.2 \
        -lvtkRenderingOpenGL2-8.2 \
        -lvtkInteractionStyle-8.2 \

SOURCES += \
    main.cpp \
    mainwindow.cpp

HEADERS += \
    mainwindow.h

FORMS += \
    mainwindow.ui

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

main.cpp:

#include "mainwindow.h"


#include <QApplication>
#include<vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2)
VTK_MODULE_INIT(vtkInteractionStyle)


#include "vtkImageViewer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkRenderer.h"
#include "vtkPNGReader.h"
#include "QVTKWidget.h"
#include "vtkImageData.h"
#include "vtkActor.h"


int main(int argc,char *argv[])
{
    QApplication a(argc,argv);
    QVTKWidget widget;


    char filename[] = "/home/bichongke/Downloads/dinosaur.png";
    vtkPNGReader* reader =vtkPNGReader::New();
    reader->SetFileName(filename);
    reader->Update();


    vtkImageViewer* imageView = vtkImageViewer::New();
    imageView->SetInputConnection(reader->GetoutputPort());


    widget.SetRenderWindow(imageView->GetRenderWindow());
    imageView->SetupInteractor(widget.GetRenderWindow()->GetInteractor());
    imageView->SetColorLevel(138.5);
    imageView->SetColorWindow(233);


    int* dims = reader->Getoutput()->GetDimensions();
    widget.resize(dims[0],dims[1]);
    widget.show();


    a.exec();
    imageView->Delete();
    reader->Delete();
    return 0;
    //MainWindow w;
    //w.show();
    //return a.exec();
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)