mutationpp / Mutationpp

The MUlticomponent Thermodynamic And Transport library for IONized gases in C++
GNU Lesser General Public License v3.0
106 stars 58 forks source link

Error compiling Mutation++ with the latest Eigen library on Gitlab #136

Closed grgbellasvki closed 4 years ago

grgbellasvki commented 4 years ago

Hello, when compiling Mutation++ with the latest Eigen library on Gitlab (https://gitlab.com/libeigen/eigen.git, master branch) I get the error below. Is anyone facing the same issue? It seems consistent for both: 1) Apple clang version 11.0.0 (clang-1100.0.33.17)) 2) Linux gcc version 4.8.5 (SUSE Linux) I install Eigen library with CMake separately.

/Users/.../Mutationpp/src/transport/Transport.cpp:298:26: error: no viable overloaded '=' nu(ir,ei(j)) = -E(i,j);

ps. It compiles fine with the 3.3.7 branch

rdbisme commented 4 years ago

Hello @grgbellasvki,

I just tried on my Catalina (AppleClang 11.0.3.11030032) with Eigen3 installed to the latest commit (25424d91f), and the build proceeds as expected.

It would be helpful if you can provide a bit more context and what you have done. For example giving these information together with the same kind of info, but for the eigen build. Are you trying to build the master branch of Mutation++?

GCC 4.8.5 has been released in 2015. It is shipped on very old Linux distribution (Centos7, Full updates EOL already expired) and, apparently, on SUSE. I'm not familiar with the distribution, but can't you install another compiler next to the "system one"? It looks like it's possible

grgbellasvki commented 4 years ago

Hello rubendibattista,

Thanks for the answer. I re-installed everything from scratch, just like yesterday, and they compile fine in both systems. I have no idea what the problem was, especially since I couldn't understand the error for overloading the "=" operator. I was more worried about the chance of having an implicit cast happening in the code there that could be avoided. Unfortunately, I couldn't spot it.

As far as the GCC compiler it is indeed a little old, but not that much. I am not the moderator of the system (it's on the cluster) and it is mandatory to use precompiled modules with specific versions coupled to M++. Probably everything could be recompiled locally, but that might hit performance, since I wouldn't be able to optimize everything as well as the moderators.

Sorry for the trouble and thank you again! I will close this issue in a few days just in case.

rdbisme commented 4 years ago

No trouble at all 😉.

I'll close the issue, feel free to ask to reopen it if the problems appears again.