Experimental Physics and
| |||||||||||||||||||
|
well... yes, you are correct. And it actually works well on Qt4 (we are using it now). Although I can not find any reason why it should not work on Qt5. The changes I made to epicsqt in order to compile it under Qt5 were very simple and could be divided onto a few categories: (unfortunately I did not made detailed changes log) 1. In .pro files Line QT += widgets uitools was added All CONFIG were set to debug_and_release not sure if it was right thing to do. 2. #include<> "QtGui" was replaced by "QtWidgets" etc. 3. QWT functions A few lines related to "canvas line width" were just commented out. 4. Qt functions toAscii() -> toLatin1() end of QEDesignerPlugin.cpp #if QT_VERSION < 0x050000 Q_EXPORT_PLUGIN2( QEWidgetsPlugin, QEWidgets ) #endif and QEDesignerPlugin.h #if QT_VERSION >= 0x050000 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QDesignerCustomWidgetCollectionInterface" ) #endif 5. Environment variables #Qt export QTDIR=/usr/local/Qt-5.1.1 export QTHOME=$QTDIR export PATH=$PATH:$QTDIR/bin export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$QTDIR/lib" #For GCC compilation and to resolve Qt GLIBCXX error export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/home/lucxopr/Distr/mpc-0.8.1/src/.libs" export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:/home/lucxopr/Distr/gcc-4.8.1/i686-pc-linux-gnu/libstdc++-v3/src/.libs" #QWT export QWT_ROOT=/home/lucxopr/soft/QtTools/qwt-6.1.0 export QWTHOME=$QWT_ROOT export QT_PLUGIN_PATH=${QWT_ROOT}/plugins/ export QWT_INCLUDE_PATH=$QWT_ROOT/include export QWTDIR=$QWT_ROOT export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$QWT_ROOT/lib" export LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$QWT_ROOT/include" export PATH=$PATH:$QWT_ROOT/include #epicsqt export QT_PLUGIN_PATH="$QT_PLUGIN_PATH:/usr/local/Qt-5.1.1/plugins/designer" export PATH=$PATH:/home/lucxopr/soft/QtTools/epicsqt/applications/QEGuiApp export PATH=$PATH:/home/lucxopr/soft/QtTools/epicsqt/applications/QEMonitorApp export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/lucxopr/soft/QtTools/epicsqt/framework/designer export QT_PLUGIN_PATH="$QT_PLUGIN_PATH:/home/lucxopr/soft/QtTools/epicsqt/framework" export QCAFRAMEWORK=/home/lucxopr/soft/QtTools/epicsqt/framework After that qmake gave me following output: 15:33:10: Running steps for project epicsqt... 15:33:10: Starting: "/usr/local/Qt-5.1.1/bin/qmake" /home/lucxopr/soft/QtTools/epicsqt/epicsqt.pro -r -spec linux-g++ Reading /home/lucxopr/soft/QtTools/epicsqt/framework/framework.pro Project MESSAGE: Applications may need to load the framework library directly. To ensure this can happen one option is to set up LD_LIBRARY_PATH to include the directory <your-epicsqt-project-location>/framework/designer. LD_LIBRARY_PATH is currently :/usr/lib:/home/lucxopr/soft/epics/base-3.14.12.3/lib/linux-x86:/home/lucxopr/soft/epics/extensions/lib/linux-x86:/usr/lib/python2.6/site-packages/numpy/core/include/numpy/:/home/lucxopr/Distr/wxPython-src-2.9.3.1/bld/lib:/home/lucxopr/Distr/wxPython-src-2.9.3.1/bld/lib:/usr/local/Qt-5.1.1/lib:/home/lucxopr/Distr/mpc-0.8.1/src/.libs:/home/lucxopr/Distr/gcc-4.8.1/i686-pc-linux-gnu/libstdc++-v3/src/.libs:/home/lucxopr/soft/QtTools/qwt-6.1.0/lib:/home/lucxopr/soft/QtTools/qwt-6.1.0/include:/home/lucxopr/soft/QtTools/qcustomplot/sharedlib-compilation:/home/lucxopr/soft/QtTools/epicsqt/framework/designer Project MESSAGE: Applications may need to load the framework library as a Qt plugin. To ensure this can happen one option is to set up QT_PLUGIN_PATH to include the directory <your-epicsqt-project-location>/framework. QT_PLUGIN_PATH is currently /home/lucxopr/soft/QtTools/qwt-6.1.0/plugins/:/usr/local/Qt-5.1.1/plugins/designer:/home/lucxopr/soft/QtTools/epicsqt/framework Project WARNING: QE_ARCHIVE_LIST is not defined. That's OK, but if you want to be able to backfill QEStripChart widgets from Project WARNING: an archiver you should define this environment variable to be a space delimited list of your archiver URLs Project WARNING: For example: 'archiver.synchrotron.org.au:80/cgi-bin/ArchiveDataServer1.cgi archiver.synchrotron.org.au:80/cgi-bin/ArchiveDataServer2.cgi' Project WARNING: QE_ARCHIVE_LIST is not defined. That's OK, but if you want to be able to backfill QEStripChart widgets from Project WARNING: an archiver you should define this environment variable to be a space delimited list of your archiver URLs Project WARNING: For example: 'archiver.synchrotron.org.au:80/cgi-bin/ArchiveDataServer1.cgi archiver.synchrotron.org.au:80/cgi-bin/ArchiveDataServer2.cgi' Project WARNING: QE_ARCHIVE_LIST is not defined. That's OK, but if you want to be able to backfill QEStripChart widgets from Project WARNING: an archiver you should define this environment variable to be a space delimited list of your archiver URLs Project WARNING: For example: 'archiver.synchrotron.org.au:80/cgi-bin/ArchiveDataServer1.cgi archiver.synchrotron.org.au:80/cgi-bin/ArchiveDataServer2.cgi' Reading /home/lucxopr/soft/QtTools/epicsqt/applications/QEGuiApp/QEGuiApp.pro Reading /home/lucxopr/soft/QtTools/epicsqt/applications/QEMonitorApp/QEMonitorApp.pro 15:33:13: The process "/usr/local/Qt-5.1.1/bin/qmake" exited normally. 15:33:13: Elapsed time: 00:03. ...and make gave the next output 15:34:01: Running steps for project epicsqt... 15:34:01: Configuration unchanged, skipping qmake step. 15:34:01: Starting: "/usr/bin/make" -j 4 cd framework/ && ( test -e Makefile || /usr/local/Qt-5.1.1/bin/qmake /home/lucxopr/soft/QtTools/epicsqt/framework/framework.pro -spec linux-g++ -o Makefile ) && /usr/bin/make -f Makefile make[1]: Entering directory `/home/lucxopr/soft/QtTools/epicsqt/framework' /usr/bin/make -f Makefile.Release make[2]: Entering directory `/home/lucxopr/soft/QtTools/epicsqt/framework' Skipping many output lines here... widgets/QEImage/QEImage.cpp: In member function 'void QEImage::setImage(const QByteArray&, long unsigned int, QCaAlarmInfo&, QCaDateTime&, const unsigned int&)': widgets/QEImage/QEImage.cpp:687:31: warning: 'minBits' may be used uninitialized in this function [-Wmaybe-uninitialized] elementsPerPixel = minBits/(imageDataSize*8); Skipping many output lines... 15:35:37: The process "/usr/bin/make" exited normally. 15:35:37: Elapsed time: 01:37. Personally I suspect that I was not correct with Q_PLUGIN_METADATA and that is why the library can not be loaded... Thanks a lot! Cheers, Alex
| ||||||||||||||||||
ANJ, 22 Oct 2013 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |