flatironinstitute / FMM3D

Flatiron Institute Fast Multipole Libraries --- This codebase is a set of libraries to compute N-body interactions governed by the Laplace and Helmholtz equations, to a specified precision, in three dimensions, on a multi-core shared-memory machine.
https://fmm3d.readthedocs.io
Other
91 stars 36 forks source link

Issue making python on Windows #28

Open reburnbh3 opened 1 year ago

reburnbh3 commented 1 year ago

Hi, I met the error that C:lib/ was not a directory and by running the make command through Git bash, it really worked. When I execute make python in Git bash, the error is as follows:

    gfortran.exe:f77: ../src/Helmholtz/hfmm3dwrap.f
    gfortran.exe:f77: ../src/Helmholtz/helmkernels.f
    gfortran.exe:f77: ../src/Helmholtz/hfmm3dwrap_vec.f
    ../src/Helmholtz/helmkernels.f:179:39:

      179 |       complex *16 zkeye,eye,cd,cd1,ztmp
          |                                       1
    Warning: Unused variable 'ztmp' declared at (1) [-Wunused-variable]
    C:\mingw64\bin\gfortran.exe -Wall -g -Wall -g -shared C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap.o C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap_vec.o C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\helmkernels.o -LC:\mingw64\lib\gcc\x86_64-w64-mingw32\12.2.0 -LC:\Users\xuan\AppData\Local\Programs\Python\Python38\libs -LC:\Users\xuan\AppData\Local\Programs\Python\Python38 -LC:\Users\xuan\AppData\Local\Programs\Python\Python38\PCbuild\amd64 -o build\temp.win-amd64-cpython-38\Release\.libs\libhfmm3dwr.PO2ZSNX7KZ4UQFXKYK5DBGLRDOIUFSX5.gfortran-win_amd64.dll -Wl,--allow-multiple-definition -Wl,--output-def,build\temp.win-amd64-cpython-38\Release\libhfmm3dwr.PO2ZSNX7KZ4UQFXKYK5DBGLRDOIUFSX5.gfortran-win_amd64.def -Wl,--export-all-symbols -Wl,--enable-auto-import -static -mlong-double-64
    C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap.o: in function `hfmm3d_s_c_p_':
    C:\FMM3D-1.0.1\python/../src/Helmholtz/hfmm3dwrap.f:199: undefined reference to `hfmm3d_'
    C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap.o: in function `hfmm3d_s_c_g_':
    C:\FMM3D-1.0.1\python/../src/Helmholtz/hfmm3dwrap.f:281: undefined reference to `hfmm3d_'
    C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap.o: in function `hfmm3d_s_d_p_':
    C:\FMM3D-1.0.1\python/../src/Helmholtz/hfmm3dwrap.f:365: undefined reference to `hfmm3d_'
    C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap.o: in function `hfmm3d_s_d_g_':
    C:\FMM3D-1.0.1\python/../src/Helmholtz/hfmm3dwrap.f:449: undefined reference to `hfmm3d_'
    C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap.o: in function `hfmm3d_s_cd_p_':
    C:\FMM3D-1.0.1\python/../src/Helmholtz/hfmm3dwrap.f:534: undefined reference to `hfmm3d_'
    C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap.o:C:\FMM3D-1.0.1\python/../src/Helmholtz/hfmm3dwrap.f:625: more undefined references to `hfmm3d_' follow
    collect2.exe: error: ld returned 1 exit status
  ...
    error: Command "C:\mingw64\bin\gfortran.exe -Wall -g -Wall -g -shared C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap.o C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\hfmm3dwrap_vec.o C:\FMM3D-1.0.1\python\build\temp.win-amd64-cpython-38\Release\FMM3D-1.0.1\src\Helmholtz\helmkernels.o -LC:\mingw64\lib\gcc\x86_64-w64-mingw32\12.2.0 -LC:\Users\xuan\AppData\Local\Programs\Python\Python38\libs -LC:\Users\xuan\AppData\Local\Programs\Python\Python38 -LC:\Users\xuan\AppData\Local\Programs\Python\Python38\PCbuild\amd64 -o build\temp.win-amd64-cpython-38\Release\.libs\libhfmm3dwr.PO2ZSNX7KZ4UQFXKYK5DBGLRDOIUFSX5.gfortran-win_amd64.dll -Wl,--allow-multiple-definition -Wl,--output-def,build\temp.win-amd64-cpython-38\Release\libhfmm3dwr.PO2ZSNX7KZ4UQFXKYK5DBGLRDOIUFSX5.gfortran-win_amd64.def -Wl,--export-all-symbols -Wl,--enable-auto-import -static -mlong-double-64" failed with exit status 1
    error: subprocess-exited-with-error
    python setup.py develop did not run successfully.
    exit code: 1
    See above for output.

And then, python setup.py develop did not run successfully. I have tried on my two PC, but both returned the same error. OS: Windows10 Python version: 3.8.10

mrachh commented 1 year ago

Hi, Many apologies for the delay in reply. We will look into this matter and try and resolve it. In the meantime, if you'd like you could install the python library using pip as pip install fmm3dpy.