compile from source - error in frame_vtk.cpp

Asked by Lukas Liebisch on 2019-03-20

Hi,

I'm trying to compile ESyS-Particle from source on Ubuntu 18.04. These are my steps:
1. Download ESyS-Particle-2.3.5.tar.gz from launchpad and unpack it
2. go into the unpacked folder and open a terminal
3. do the following commands:
./autogen.sh
./configure CC=mpicc CXX=mpicxx
make

After a few minutes of doing ~stuff~ the process stops with a few lines of error messages:

Makefile:492: recipe for target 'frame_vtk.o' failed
make[3]: *** [frame_vtk.o] Error 1
make[3]: Leaving directory '/home/lukas/Downloads/ESyS-Particle-2.3.5/Tools/dump2vtk'
Makefile:424: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/lukas/Downloads/ESyS-Particle-2.3.5/Tools'
Makefile:466: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/lukas/Downloads/ESyS-Particle-2.3.5'
Makefile:397: recipe for target 'all' failed
make: *** [all] Error 2

If I scroll up a little bit I find the following error (thank whoever made errors stand out in red!):

frame_vtk.cpp: In function ‘void writeMeshFile(const string&, const string&, int)’:
frame_vtk.cpp:1279:29: error: no match for ‘operator!=’ (operand types are ‘std::basic_istream<char>’ and ‘long int’)
   while (datafile >> header != NULL){

I am not a programmer, but after a some googleing it seems to me that the line "while (datafile >> header != NULL)" just doesn't make much sense because you can't compare different data types like that? I don't know.

So I went into the folder ESyS-Particle-2.3.5/Tools/dump2vtk, found the file frame_vtk.cpp and changed the line "while (datafile >> header != NULL)" to "while (datafile >> header)". Now make completes without an error, as well as the following make install. ESyS-Particle seems to work without any issues, as well as the dump2vtk tool.

My question is, did I solve my issue just like that and this should be more like a bug report, or did I break something in the process that will make things terrible for me later on?

edit: added system info

Question information

Language:
English Edit question
Status:
Solved
For:
ESyS-Particle Edit question
Assignee:
No assignee Edit question
Solved by:
SteffenAbe
Solved:
2019-03-20
Last query:
2019-03-20
Last reply:
2019-03-20
Best SteffenAbe (s-abe) said : #1

Hi Lukas,

the change you made obviously fixes the issue and actually brings the code more in line with modern C++ anyway. We'll commit the changes for the upcoming release.
Btw, what compiler version did you use?

Steffen

Lukas Liebisch (lliebisch) said : #2

Thank you for your reply!

The command "dpkg --list | grep compiler" that I learned about 2 minutes ago produces the following list:

ii g++ 4:7.3.0-3ubuntu2.1 amd64 GNU C++ compiler
ii g++-7 7.3.0-27ubuntu1~18.04 amd64 GNU C++ compiler
ii gcc 4:7.3.0-3ubuntu2.1 amd64 GNU C compiler
ii gcc-7 7.3.0-27ubuntu1~18.04 amd64 GNU C compiler
ii libllvm6.0:amd64 1:6.0-1ubuntu2 amd64 Modular compiler and toolchain technologies, runtime library
ii libllvm7:amd64 1:7-3~ubuntu0.18.04.1 amd64 Modular compiler and toolchain technologies, runtime library
ii libxkbcommon0:amd64 0.8.0-1ubuntu0.1 amd64 library interface to the XKB compiler - shared library

I hope this is what you're looking for.

Lukas

Lukas Liebisch (lliebisch) said : #3

Thanks SteffenAbe, that solved my question.