sandialabs / CACTUS

CACTUS (Code for Axial and Cross-flow TUrbine Simulation) is a turbine performance simulation code, based on a free wake vortex method, to study wind turbines and marine hydrokinetic (MHK) devices.
BSD 3-Clause "New" or "Revised" License
20 stars 13 forks source link

Error compiling in MSys2 #40

Closed bleblanc18 closed 3 years ago

bleblanc18 commented 3 years ago

Hi guys,

Compiling the code in Windows 10, using the updated MSys2, mingw-64 (build as of feb15 2021). After updating all packages to the current editions, I'm getting an error in the last step "Linking Fortran executable." This seems to be due to an issue with the -static libraries for use with windows.

Error:

[100%] Linking Fortran executable ../bin/cactus C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0\libgfortran.a(read.o):(.text$_gfortrani_convert_real+0xb7): relocation truncated to fit: IMAGE_REL_AMD64_REL32 against undefined symbol strtoflt128' C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0\libgfortran.a(read.o):(.text$_gfortrani_convert_infnan+0xb3): relocation truncated to fit: IMAGE_REL_AMD64_REL32 against undefined symbolstrtoflt128' collect2.exe: error: ld returned 1 exit status make[2]: [CMakeFiles/cactus.dir/build.make:1050: ../bin/cactus] Error 1 make[1]: [CMakeFiles/Makefile2:95: CMakeFiles/cactus.dir/all] Error 2 make: *** [Makefile:103: all] Error 2

Anyone else experiencing this issue? I'm not sure if this is innate to the MSys2 system or some easier work around.

I can successfully compile when the -static link is removed, but I can't run the program as it is missing essential .dlls.

Thanks for your time!

Bruce

whophil commented 3 years ago

Hey @bleblanc18 long time!

It does appear to be an msys issue, see https://github.com/msys2/MINGW-packages/issues/7023

There is a workaround listed, which is to add some flags during compilation.

bleblanc18 commented 3 years ago

That did the trick!

Thanks a ton!

It has been quite the while. What are you up to these days?