|
From: Marc G. <mar...@it...> - 2018-09-30 15:21:51
|
Hi Dan, I will try to give you some hints based on my observations from your description and the attached files. It is not easy to find a correct starting point for your points, therefore I try to start with the following order: Qt, QScintilla, OpenCV, Python 1. Qt: It is highly recommended to use Qt5, as you did it. Usually, the CMake configuration of itom has an auto detection mechanism of Qt5 or 4 (CMake variable BUILD_QTVERSION is set to 'auto'). In your case, it seems, that Qt5 could be detected correctly. However, in order to be sure, that Qt5 is detected only, set BUILD_QTVERSION to 'Qt5'. When you used CMake < 3.0, it seems that the mandatory Qt5UiPlugin module could not be loaded with CMake < 3.0, therefore, you did the right way and chose CMake >= 3.0. Nevertheless, you still need the additional Qt-module Qt5UiTools. In some linux distributions, this is provided by an additional package. Probably try to download this package by yum install qt5-qttools-static In Ubuntu or fedora, the corresponding package is called qttools5-dev-tools and qttools5-dev If you get further issues concerning the web engine from Qt, try to disable the CMake option BUILD_WITH_HELPVIEWER. This builds itom with a simplified help viewer, however does not require the chromium-based Qt module for displaying web contents. 2. QScintilla: Please make sure, that you get the Qt5 package from QScintilla, since QScintilla is also available for Qt4. The corresponding debian package is called libqt5scintilla2-dev (which also depends on libqt5scintilla - you need both). Under fedora it is called qscintilla-qt5-devel (depends on qscintilla-qt5) This package ( https://centos.pkgs.org/7/epel-x86_64/qscintilla-2.8-1.el7.x86_64.rpm.html) is the wrong one, since it is based on Qt4 (see dependencies). Hint: Currently, we are working on a new version of itom (branch: codeEditor), where the code editor is not based any more on QScintilla (due to licensing issues with newer QScintilla versions). This work is almost done, however not well tested under linux, yet. If you have troubles getting QScintilla, try to use this branch. The best performance is reached, if you install the python package 'jedi' (requires 'parso'), too (for auto completion, calltips...) 3. OpenCV If you have a recent version of OpenCV (I think OpenCV >= 3.0 is good), OpenCV should provide a file 'OpenCVConfig.cmake' that describes the entire structure and pathes of your OpenCV installation. If you have this file, the it should be sufficient to indicate the CMake variable OpenCV_DIR to the path where this OpenCVConfig.cmake file is located. Usually, this configuration file is searched in one of these directories: "/usr/share/OpenCV" "/usr/local/share/OpenCV" "/usr/lib64/OpenCV" "/usr/lib/OpenCV" However, if you set OpenCV_DIR by hand, CMake will take this folder. If you did this and CMake could properly understand this file, the header file cvver.h is not searched any more and everything should be fine. Usually, itom should also compile with OpenCV 2.4.x. If have seen, that there exists an OpenCV 2.4 package for CentOS 7. Maybe this should work, too. Nevertheless, the self-build version of OpenCV 3.x should be fine. 4. Python It is fully ok, to use Python 3.4, too. Currently, most of us work with Python 3.5 or 3.6. You can tell CMake to use your version of Python. Please check our documentation page https://itom.bitbucket.io/latest/docs/02_installation/build_linux.html#configuration-process under "Configuration Process, step 5" how to configure CMake to do this. Before doing this, you should make sure, that Numpy is installed for this python version. All other python packages can be installed later, when itom is running (for instance using the Python package manager of itom). Usually, there are ready-to-use Numpy packages for various python versions in various package repositories, e.g. rh-python34-numpy-1.8.2-1.el7.x86_64.rpm I hope that I could help you. Feel free to post your progress or if you failed at any point. Cheers Marc Am Sa., 29. Sep. 2018 um 01:02 Uhr schrieb dan nessett via Itom-discussions <ito...@li...>: > Hi, > > Thanks for helping me to build Itom on centos 7. > > Here is the itom source version: > > [dnessett@localhost itom]$ git describe > v3.1.0-57-gdb25cac > > Before providing you with the Cmake output, I think it prudent to document > the build dependencies on my machine. > > Cmake - I have both cmake2.8.12.2 and cmake3.12.1 installed, including the > gui frontends for each > > Qt - I have qt4.8.7 and qt5.9.2 installed - yum output: > > Installed Packages > qt.x86_64 1:4.8.7-2.el7 > @anaconda > > Installed Packages > qt5-designer.x86_64 5.9.2-1.el7 > @anaconda > qt5-doctools.x86_64 5.9.2-1.el7 > @anaconda > qt5-linguist.x86_64 5.9.2-1.el7 > @anaconda > qt5-qt3d.x86_64 5.9.2-1.el7 > @anaconda > qt5-qt3d-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtbase.x86_64 5.9.2-3.el7 > @anaconda > qt5-qtbase-common.noarch 5.9.2-3.el7 > @anaconda > qt5-qtbase-devel.x86_64 5.9.2-3.el7 > @anaconda > qt5-qtbase-gui.x86_64 5.9.2-3.el7 > @anaconda > qt5-qtbase-mysql.x86_64 5.9.2-3.el7 > @anaconda > qt5-qtbase-odbc.x86_64 5.9.2-3.el7 > @anaconda > qt5-qtbase-postgresql.x86_64 5.9.2-3.el7 > @anaconda > qt5-qtcanvas3d.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtconnectivity.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtconnectivity-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtdeclarative.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtdeclarative-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtdoc.noarch 5.9.2-1.el7 > @anaconda > qt5-qtenginio.x86_64 1:1.6.2-2.el7 > @anaconda > qt5-qtenginio-devel.x86_64 1:1.6.2-2.el7 > @anaconda > qt5-qtgraphicaleffects.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtimageformats.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtlocation.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtlocation-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtmultimedia.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtmultimedia-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtquickcontrols.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtquickcontrols2.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtscript.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtscript-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtsensors.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtsensors-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtserialbus.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtserialport.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtserialport-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtsvg.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtsvg-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qttools.x86_64 5.9.2-1.el7 > @anaconda > qt5-qttools-common.noarch 5.9.2-1.el7 > @anaconda > qt5-qttools-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qttools-libs-designer.x86_64 5.9.2-1.el7 > @anaconda > qt5-qttools-libs-designercomponents.x86_64 5.9.2-1.el7 > @anaconda > qt5-qttools-libs-help.x86_64 5.9.2-1.el7 > @anaconda > qt5-qttranslations.noarch 5.9.2-1.el7 > @anaconda > qt5-qtwayland.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtwebchannel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtwebchannel-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtwebsockets.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtwebsockets-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtx11extras.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtx11extras-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtxmlpatterns.x86_64 5.9.2-1.el7 > @anaconda > qt5-qtxmlpatterns-devel.x86_64 5.9.2-1.el7 > @anaconda > qt5-rpm-macros.noarch 5.9.2-3.el7 > @anaconda > > The itom configure seems to be using qt5. > > Qscintilla - I have 2.8 installed - yum output: > > Installed Packages > qscintilla.x86_64 2.8-1.el7 > @epel > > opencv - I tried to install 3.1.0 using the instructions here: > https://www.vultr.com/docs/how-to-install-opencv-on-centos-7, but could > not get it to build. I then found a script here - > https://gist.github.com/alundiak/4c0de8d657daa872f31e1df5f9056df8, that > when executed installed opencv3.3.1 in a sub-directory of my home directory > (/home/dnessett). > > python - for centos 7, you must keep the existing version of python > (2.7.5) as the default so yum works properly. However, I found python3.4 in > /usr/bin and I installed python3.7 in /usr/local/bin. Here are the relevant > contents of /usr/bin > > /usr/bin/python /usr/bin/python3.4-config > /usr/bin/python2 /usr/bin/python3.4m > /usr/bin/python2.7 /usr/bin/python3.4m-config > /usr/bin/python2.7-config /usr/bin/python3.4m-x86_64-config > /usr/bin/python2-config /usr/bin/python3-config > /usr/bin/python3 /usr/bin/python-config > > and /usr/local/bin > > [dnessett@localhost bin]$ pwd > /usr/local/bin > [dnessett@localhost bin]$ ls > 2to3-3.7 idle3.7 pip3 pydoc3.7 python3.7m pyvenv-3.7 > easy_install-3.7 pip pip3.7 python3.7 python3.7m-config > > I don't know how to direct Cmake configure to use python3.7 instead of the > default version of python. > > git is intalled - yum output: > > Installed Packages > git.x86_64 1.8.3.1-14.el7_5 > @updates > > numpy is installed in python3.7, but I couldn't find it in python 3.4. > > Given these preliminaries, I first used cmake2 to configure the itom > sources and got the following errors: > > CMake > 2.8.11 > OpenMP found and enabled for release compilation > OpenCV components: core > CMake Error at FindOpenCV.cmake:157 (file): > file STRINGS file "/home/dnessett/opencv/include/opencv/cvver.h" cannot > be > read. > Call Stack (most recent call first): > DataObject/CMakeLists.txt:38 (find_package) > > > CMake Error at FindOpenCV.cmake:158 (string): > string sub-command REGEX, mode REPLACE needs at least 6 arguments total > to > command. > Call Stack (most recent call first): > DataObject/CMakeLists.txt:38 (find_package) > > ...... > > > I noticed cvver.h did not exist in /home/dnessett/opencv/include/opencv, > so I found a copy on the internet, changed the required text and put into > that directory. The text is (eliding the comment header): > > #ifndef _CVVERSION_H_ > #define _CVVERSION_H_ > > #define CV_MAJOR_VERSION 3 > #define CV_MINOR_VERSION 3 > #define CV_SUBMINOR_VERSION 1 > #define CV_VERSION "3.3.1" > > #endif /*_CVVERSION_H_*/ > > This eliminated the missing version file problem. > > However, I then got: > > CMake > 2.8.11 > OpenMP found and enabled for release compilation > CMake Error at /usr/lib64/cmake/Qt5UiPlugin/Qt5UiPluginConfig.cmake:3 > (message): > Qt 5 UiPlugin module requires at least CMake version 3.0.0 > Call Stack (most recent call first): > /usr/lib64/cmake/Qt5Designer/Qt5DesignerConfig.cmake:89 (find_package) > /usr/lib64/cmake/Qt5/Qt5Config.cmake:28 (find_package) > ItomBuildMacros.cmake:261 (find_package) > AddInManager/CMakeLists.txt:51 (FIND_PACKAGE_QT) > > So, I installed Cmake3.12.1 and used it going forward. > > When I configured the itom source using Cmake3, I got new errors. > Specifically, it appears it cannot find the cvopen libraries. > > Instead of including the output inline, I am attaching two files to this > message. The first (CMakeCache3.12.1-9-28-18.txt) documents the configure > environmental variables. The second > (itom_3.12.1-9.28.18_configure_errors.txt) is the output of the failing > configure command. Notice in the latter the errors beginning: > > OpenCV components: core > $[lib]{__CVLIB}331[d] or not found > $[lib]{__CVLIB}331[d] or not found > $[lib]{__CVLIB}331[d] or not found > $[lib]{__CVLIB}331[d] or not found > $[lib]{__CVLIB}331[d] or not found > $[lib]{__CVLIB}331[d] or not found > > Notice in the CMakeCache file I have defined: > > OpenCV_DIR:PATH=/home/dnessett/opencv > > I also set Open_CV_cv_LIBRARY to /home/dnessett/opencv/build/lib > > However, it didn't eliminate these errors. In fact, at the end of the > configure, it cleared the value of Open_CV_cv_LIBRARY. > > Here is the directory where the opencv libraries are stored: > > [dnessett@localhost lib]$ pwd > /home/dnessett/opencv/build/lib > [dnessett@localhost lib]$ ls > libopencv_aruco.so libopencv_optflow.so.3.3.1 > libopencv_aruco.so.3.3 libopencv_phase_unwrapping.so > libopencv_aruco.so.3.3.1 libopencv_phase_unwrapping.so.3.3 > libopencv_bgsegm.so libopencv_phase_unwrapping.so.3.3.1 > libopencv_bgsegm.so.3.3 libopencv_photo.so > libopencv_bgsegm.so.3.3.1 libopencv_photo.so.3.3 > libopencv_bioinspired.so libopencv_photo.so.3.3.1 > libopencv_bioinspired.so.3.3 libopencv_plot.so > libopencv_bioinspired.so.3.3.1 libopencv_plot.so.3.3 > libopencv_calib3d.so libopencv_plot.so.3.3.1 > libopencv_calib3d.so.3.3 libopencv_reg.so > libopencv_calib3d.so.3.3.1 libopencv_reg.so.3.3 > libopencv_ccalib.so libopencv_reg.so.3.3.1 > libopencv_ccalib.so.3.3 libopencv_rgbd.so > libopencv_ccalib.so.3.3.1 libopencv_rgbd.so.3.3 > libopencv_core.so libopencv_rgbd.so.3.3.1 > libopencv_core.so.3.3 libopencv_saliency.so > libopencv_core.so.3.3.1 libopencv_saliency.so.3.3 > libopencv_datasets.so libopencv_saliency.so.3.3.1 > libopencv_datasets.so.3.3 libopencv_shape.so > libopencv_datasets.so.3.3.1 libopencv_shape.so.3.3 > libopencv_dnn.so libopencv_shape.so.3.3.1 > libopencv_dnn.so.3.3 libopencv_stereo.so > libopencv_dnn.so.3.3.1 libopencv_stereo.so.3.3 > libopencv_dpm.so libopencv_stereo.so.3.3.1 > libopencv_dpm.so.3.3 libopencv_stitching.so > libopencv_dpm.so.3.3.1 libopencv_stitching.so.3.3 > libopencv_face.so libopencv_stitching.so.3.3.1 > libopencv_face.so.3.3 libopencv_structured_light.so > libopencv_face.so.3.3.1 libopencv_structured_light.so.3.3 > libopencv_features2d.so libopencv_structured_light.so.3.3.1 > libopencv_features2d.so.3.3 libopencv_superres.so > libopencv_features2d.so.3.3.1 libopencv_superres.so.3.3 > libopencv_flann.so libopencv_superres.so.3.3.1 > libopencv_flann.so.3.3 libopencv_surface_matching.so > libopencv_flann.so.3.3.1 libopencv_surface_matching.so.3.3 > libopencv_freetype.so libopencv_surface_matching.so.3.3.1 > libopencv_freetype.so.3.3 libopencv_text.so > libopencv_freetype.so.3.3.1 libopencv_text.so.3.3 > libopencv_fuzzy.so libopencv_text.so.3.3.1 > libopencv_fuzzy.so.3.3 libopencv_tracking.so > libopencv_fuzzy.so.3.3.1 libopencv_tracking.so.3.3 > libopencv_highgui.so libopencv_tracking.so.3.3.1 > libopencv_highgui.so.3.3 libopencv_ts.a > libopencv_highgui.so.3.3.1 libopencv_videoio.so > libopencv_imgcodecs.so libopencv_videoio.so.3.3 > libopencv_imgcodecs.so.3.3 libopencv_videoio.so.3.3.1 > libopencv_imgcodecs.so.3.3.1 libopencv_video.so > libopencv_img_hash.so libopencv_video.so.3.3 > libopencv_img_hash.so.3.3 libopencv_video.so.3.3.1 > libopencv_img_hash.so.3.3.1 libopencv_videostab.so > libopencv_imgproc.so libopencv_videostab.so.3.3 > libopencv_imgproc.so.3.3 libopencv_videostab.so.3.3.1 > libopencv_imgproc.so.3.3.1 libopencv_xfeatures2d.so > libopencv_java331.so libopencv_xfeatures2d.so.3.3 > libopencv_line_descriptor.so libopencv_xfeatures2d.so.3.3.1 > libopencv_line_descriptor.so.3.3 libopencv_ximgproc.so > libopencv_line_descriptor.so.3.3.1 libopencv_ximgproc.so.3.3 > libopencv_ml.so libopencv_ximgproc.so.3.3.1 > libopencv_ml.so.3.3 libopencv_xobjdetect.so > libopencv_ml.so.3.3.1 libopencv_xobjdetect.so.3.3 > libopencv_objdetect.so libopencv_xobjdetect.so.3.3.1 > libopencv_objdetect.so.3.3 libopencv_xphoto.so > libopencv_objdetect.so.3.3.1 libopencv_xphoto.so.3.3 > libopencv_optflow.so libopencv_xphoto.so.3.3.1 > libopencv_optflow.so.3.3 > > At this point, I decided to contact you for some help. > > Dan > _______________________________________________ > Itom-discussions mailing list > Ito...@li... > https://lists.sourceforge.net/lists/listinfo/itom-discussions > -- |