|
From: dan n. <dne...@ya...> - 2019-04-28 23:15:27
|
Again forgot to copy to itom-discussion. Forwarding. ----- Forwarded Message ----- From: dan nessett <dne...@ya...>To: Marc Gronle <mar...@it...>Sent: Sunday, April 28, 2019, 4:13:49 PM PDTSubject: Re: Itom build failed Hi Marc, I was able to rebuild itom from the updated source (and using python3.6 for configuration). However, I am still getting the error: [dnessett@localhost itom]$ ./qitom libnipalu.so failed to initialize Verify that nipalk.ko is built and loaded. Aborted (core dumped) This is an issue with the ni-daqmx library and the Linux kernel now installed for Centos 7.5. (By the way, I didn't update the Centos 7.5 installation per se. New kernel versions are regularly distributed via the system software update process, which does not update anything else on the system). I have tried several strategies to get the ni C library in sync with the kernel version without success. I have reported this problem and my attempts to solve it here: https://forums.ni.com/t5/Linux-Users/Can-t-find-updateNIDrivers-for-NIDAQMX-18-1/gpm-p/3919123 but so far have not received any help. Until I can resolve this problem, I am unable to continue testing the ni-daqmx plugin. I will let you know when it is fixed and I can resume testing. Dan On Wednesday, April 24, 2019, 9:50:18 PM PDT, Marc Gronle <mar...@it...> wrote: Hello Dan, it seems that you updated your CentOS installation. Therefore it can be that CentOS switched to a newer Python. This is always a situation where you have to manually re-check the dependencies and re-configure CMake. Yes, you need Numpy for the Python version you intent to use. The simplest way ist to get the Numoy packages by your package manager. If you want you can also use the newest Python version 3.7. This is probably now the default version of your OS. For the NI library, I also think that you probably have to recompile some NI code due to your kernel upgrade. CheersMarc dan nessett <dne...@ya...> schrieb am Do., 25. Apr. 2019 00:21: Hi Marc, I have been using python 3.4 since the beginning. There is no Python.h in that distribution: [dnessett@localhost lib64]$ locate Python.h /usr/include/python2.7/Python.h /usr/include/python3.6m/Python.h /usr/local/include/python3.7m/Python.h /usr/src/Python-3.7.0/Include/Python.h I tried to switch to python 3.6, but then the configure couldn't find NumPy: ======= ...... OpenMP found and enabled for release compilation Found PythonLibs: /usr/lib64/libpython3.6m.so.1.0 (found suitable version "3.6.6", minimum required is "3.0") OpenCV components: core Found PythonInterp: /usr/bin/python3.6m (found version "3.6.6") CMake Error at FindNumPy.cmake:96 (message): NumPy import failure: Traceback (most recent call last): File "<string>", line 1, in <module> ModuleNotFoundError: No module named 'numpy' Call Stack (most recent call first): Qitom/CMakeLists.txt:62 (find_package) Configuring incomplete, errors occurred! See also "/usr/local/src/itom/build_release/itom/CMakeFiles/CMakeOutput.log". ======= Do I need to install a new version of NumPy that works with python3.6? If so, anything else I need to install? By the way, I am still chasing down the problem that generates "libnipalu.so failed to initialize". I thought I had it solved, as googling the problem suggested it is caused by having the kernel headers version out of sync with the kernel version. That was the case on my machine, but when I got them back in sync by booting from a new kernel, the problem persisted. I think when the NI drivers are installed, they compile in kernel header information and so I need to figure out how to upgrade the NI drivers. Still working on that. Regards, Dan On Wednesday, April 24, 2019, 2:57:04 PM PDT, Marc Gronle <mar...@it...> wrote: Hello Dan, did you change something at your CMake configuration? I don't think that anything changed at the specific include in the last months.If I "locate" Python.h on my Debian 9 system, I get an exemplary directory like /usr/include/python3.5m? Can you locate Python.h (with capital letter P) at a similar location?If I open then the CMake gui and check the variable PYTHON_INCLUDE_DIR, the same include directory ist listed there, which is then used as include directory for building the project. Can you check this as well? Please check also the variables PYTHON_LIBRARY? Under my Centos 7 system, I got PYTHON_INCLUDE_DIR -> /usr/include/python3.6m PYTHON_LIBRARY -> usr/lib64/libpython3.6m.so PYTHON_EXECUTABLE -> /usr/bin/python3.6 If these variables are somehow not reasonable for your system, please try to set them manually, and click configure and generate again and build itom again.I cannot tell you why these values should have been changed. If so, did you maybe delete the CMakeCache file from the itom build directory? This cache file is used to store the current values of CMake variables. I hope that you can find the problem. CheersMarc Am Mi., 24. Apr. 2019 um 22:43 Uhr schrieb dan nessett <dne...@ya...>: Hi Marc, I pulled the latest changes from itom/master and redid the make. Now I get the following error: ======= [ 62%] Building CXX object Qitom/CMakeFiles/qitom.dir/main.cpp.o In file included from /usr/local/src/itom/sources/itom/Qitom/python/./pythonEngine.h:49:0, from /usr/local/src/itom/sources/itom/Qitom/python/pythonEngineInc.h:27, from /usr/local/src/itom/sources/itom/Qitom/mainApplication.h:26, from /usr/local/src/itom/sources/itom/Qitom/main.cpp:22: /usr/local/src/itom/sources/itom/Qitom/python/./pythonWrapper.h:5:20: fatal error: Python.h: No such file or directory #include "Python.h" ^ compilation terminated. make[2]: *** [Qitom/CMakeFiles/qitom.dir/main.cpp.o] Error 1 make[1]: *** [Qitom/CMakeFiles/qitom.dir/all] Error 2 make: *** [all] Error 2 ======= I tried changing "#include Python.h" to "#include python.h", in pythonWrapper.h, but that didn't work. Regards, Dan On Wednesday, April 24, 2019, 12:47:15 PM PDT, Marc Gronle <mar...@it...> wrote: Hi Dan, pulling from the master is good, however there was a linux-specific compiler issue due to a code refactoring, that I added last week. Thanks for reporting this. I apologize that I didn't not check the linux compiler up to now. I fixed this issue now and pushed it to the master of itom: https://bitbucket.org/itom/itom/commits/a52b40d2918c928ffb117da89aa6d6d6b97aa13f Best regards Marc Am Mo., 22. Apr. 2019 um 22:56 Uhr schrieb dan nessett <dne...@ya...>: Hi Marc, I was going to test the changes you made to niDAQmx, but when I ran qitom in the release directory, I got the following: [dnessett@localhost itom]$ ./qitom libnipalu.so failed to initialize Verify that nipalk.ko is built and loaded. Aborted (core dumped) This appears to be a problem locating a national instruments library. While this doesn't really involve the itom app, I decided to do a git pull on the itom repository and rebuild, in order to get the most recent version of itom. After doing so, I reconfigured and regenerated using CMake3 and then ran make. This generated the following error: ========== [dnessett@localhost itom]$ make [ 1%] Built target itomCommonLib [ 2%] Building CXX object DataObject/CMakeFiles/dataobject.dir/dataObjectFuncs.cpp.o /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp: In function ‘ito::RetVal ito::dObjHelper::minValueFunc(const ito::DataObject*, ito::float64&, ito::uint32*, bool)’: /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp:132:42: error: expected primary-expression before ‘>’ token rowPtr = mat->ptr<_Tp>(m); ^ /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp:155:42: error: expected primary-expression before ‘>’ token rowPtr = mat->ptr<_Tp>(m); ^ /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp: In function ‘ito::RetVal ito::dObjHelper::maxValueFunc(const ito::DataObject*, ito::float64&, ito::uint32*, bool)’: /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp:272:42: error: expected primary-expression before ‘>’ token rowPtr = mat->ptr<_Tp>(m); ^ /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp:295:42: error: expected primary-expression before ‘>’ token rowPtr = mat->ptr<_Tp>(m); ^ /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp: In function ‘ito::RetVal ito::dObjHelper::minMaxValueFunc(const ito::DataObject*, ito::float64&, ito::uint32*, ito::float64&, ito::uint32*, bool, int)’: /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp:525:42: error: expected primary-expression before ‘>’ token rowPtr = mat->ptr<_Tp>(m); ^ /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp:559:42: error: expected primary-expression before ‘>’ token rowPtr = mat->ptr<_Tp>(m); ^ /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp: In function ‘ito::RetVal ito::dObjHelper::meanValueFunc(const ito::DataObject*, ito::float64&, bool)’: /usr/local/src/itom/sources/itom/DataObject/dataObjectFuncs.cpp:1395:42: error: expected primary-expression before ‘>’ token rowPtr = mat->ptr<_Tp>(m); ^ make[2]: *** [DataObject/CMakeFiles/dataobject.dir/dataObjectFuncs.cpp.o] Error 1 make[1]: *** [DataObject/CMakeFiles/dataobject.dir/all] Error 2 make: *** [all] Error 2 I wonder if I should be pulling from another branch than master: [dnessett@localhost itom]$ pwd /usr/local/src/itom/sources/itom [dnessett@localhost itom]$ git status # On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # SDK/ nothing added to commit but untracked files present (use "git add" to track) =========== By the way, after fixing some compile problems with the code you added to niDAQmx, the plugin make worked. Regards, Dan |