Open alexmyczko opened 10 months ago
You may use the wrong compiler. What system, which software version, which compiler environment is that on? You have to follow the instructions here: https://lbem-focus.epfl.ch/wiki/doku.php?id=1_0:install-source
I did, I have:
dpkg -l cmake gfortran g++ libfftw3-dev qtscript5-dev
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-==============-============-===========================================================
ii cmake 3.28.1-1 amd64 cross-platform, open-source make system
ii g++ 4:13.2.0-4 amd64 GNU C++ compiler
ii gfortran 4:13.2.0-4 amd64 GNU Fortran 95 compiler
ii libfftw3-dev:amd64 3.3.10-1 amd64 Library for computing Fast Fourier Transforms - development
ii qtscript5-dev:amd64 5.15.10+dfsg-2 amd64 Qt 5 script development files
The same on Ubuntu 22.04 as well as Debian GNU/Linux sid.
Somehow, your compiler doesn't find the libraries in .../focus/kernel/mrc/lib. These should have been compiled first, and the linker then needs to find those. IWRLIN and IMCLOSE etc. are all from those image2000 libraries.
My guess is that this has to do with the version of gcc / g++ used.
Using ./build_all
and gcc-12/g++-12 it builds... until 18% (master)
Also tried versions 9, and 11. With the same failure. I would like some help here, maybe you can send a full successfull ./build_all
output with the detail which Debian or Ubuntu versions of cmake, g++, gfortran, libfftw3-dev, qtscript5-dev you are using?
And maybe a new release tag would be nice too?
Hi, I'm having the same issue. I believe this issue is related to the gfortran since I got errors like the following for the relevant library compilation:
93 | CALL ODFFT(ARRAY,NX,NLINES,0)
| 2
......
117 | CALL ODFFT(CRAY,NY,NUSE,-1)
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (COMPLEX(4)/REAL(4)).
/home/cryosparcuser/focus/build/kernel/mrc/lib/bigfilt.f:141:19:
93 | CALL ODFFT(ARRAY,NX,NLINES,0)
| 2
......
141 | CALL ODFFT(CRAY,NY,NUSE,-2)
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (COMPLEX(4)/REAL(4)).
/home/cryosparcuser/focus/build/kernel/mrc/lib/bigfilt.f:150:27:
94 | CALL QWRITE(ISCR,ARRAY,NSEC)
| 2
......
150 | CALL QWRITE(ISCR,CLINE,NUSE8)
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (COMPLEX(4)/REAL(4)).
/home/cryosparcuser/focus/build/kernel/mrc/lib/bigfilt.f:165:19:
93 | CALL ODFFT(ARRAY,NX,NLINES,0)
| 2
......
165 | CALL ODFFT(CRAY,NX,NLINES,1)
| 1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (COMPLEX(4)/REAL(4)).
before the same error as OP's.
My environment is as follows:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-===================-=======================-============-===========================================================
ii cmake 3.22.1-1ubuntu1.22.04.2 amd64 cross-platform, open-source make system
ii g++ 4:11.2.0-1ubuntu1 amd64 GNU C++ compiler
ii gfortran 4:11.2.0-1ubuntu1 amd64 GNU Fortran 95 compiler
ii libfftw3-dev:amd64 3.3.8-2ubuntu8 amd64 Library for computing Fast Fourier Transforms - development
ii qtscript5-dev:amd64 5.15.3+dfsg-1 amd64 Qt 5 script development files
The error "Type mismatch" looks like it is due to the newer version of gfortran with mpi. https://github.com/pmodels/mpich/issues/4300 https://stackoverflow.com/questions/69686755/fortran-error-type-mismatch-between-actual-argument-at-1-and-actual-argument
I don't know how to pass the necessary flags for fortran ("-w -fallow-argument-mismatch") in CMake. Any help would be appreciated.
I finished the compilation by modifying the following files: