From: Alan W. I. <ir...@be...> - 2013-09-08 04:06:50
|
On 2013-09-07 18:39+0200 rob...@n1... wrote: > Hello, > I think I correctly compiled plplot using cmake/nmake under Windows 7/VS 2010. > I'd like to use plplot inside QtCreator. > > I can't get the QT example to compile properly. > I get 8 errors like this: > > plotwindow.obj:-1: error: LNK2019: unresolved external symbol "void > __cdecl plsetqtdev(class QtExtWidget *,int,char * *)" > (?plsetqtdev@@YAXPAVQtExtWidget@@HPAPAD@Z) referenced in function > "public: __thiscall PlotWindow::PlotWindow(int,char * *,class QWidget > *)" (??0PlotWindow@@QAE@HPAPADPAVQWidget@@@Z) > > This is clearly a linking problem but I can't understand what it's missing. > I have correctly added the .lib file into my .pro file. I added the > headers as well but still get this error. Hi Luca: For what it is worth, here are the mentions of plsetqtdev in the PLplot code base. software@raven> find . -type f |grep -v .svn |xargs grep plsetqtdev ./bindings/qt_gui/pyqt4/plplot_pyqt4.sip:void plsetqtdev(QtExtWidget* widget); ./bindings/qt_gui/plqt.cpp:void plsetqtdev( QtExtWidget* widget ) ./bindings/qt_gui/plqt.cpp:void plsetqtdev( QtExtWidget* widget, int argc, char** argv ) ./drivers/qt.cpp: printf( "Error: use plsetqtdev to set up the Qt device before calling plinit()\n" ); ./examples/c++/qt_PlotWindow.cpp: plsetqtdev( plot ); ./examples/c++/qt_PlotWindow.cpp: plsetqtdev( plot, argc, argv ); ./examples/python/pyqt4_example.py: plplot_pyqt4.plsetqtdev(self.plot) ./include/qt.h:PLDLLIMPEXP_QT void plsetqtdev( QtExtWidget* widget ); // Registers the widget as plot device, as the widget has to be created in the Qt application GUI, prior to any plplot call. Must be called before plinit(). ./include/qt.h:PLDLLIMPEXP_QT void plsetqtdev( QtExtWidget* widget, int argc, char** argv ); // Registers the widget as plot device, as the widget has to be created in the Qt application GUI, prior to any plplot call. Must be called before plinit(). plqt.cpp is the source code for the plplotqt library (see bindings/qt_gui/CMakeLists.txt). So it appears from your error message that you are not linking properly to that library. The usual build-tree linking issue for Windows is you have not put the dll subdirectory of the top-level build-tree directory on your PATH where that library and many other PLplot libraries are collected in the Windows case for convenience. So please try doing that to see if that fixes the issue. Alan __________________________ Alan W. Irwin Astronomical research affiliation with Department of Physics and Astronomy, University of Victoria (astrowww.phys.uvic.ca). Programming affiliations with the FreeEOS equation-of-state implementation for stellar interiors (freeeos.sf.net); the Time Ephemerides project (timeephem.sf.net); PLplot scientific plotting software package (plplot.sf.net); the libLASi project (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); and the Linux Brochure Project (lbproject.sf.net). __________________________ Linux-powered Science __________________________ |