Most likely you're missing one of the dependency dll's (or Julia can't find 
it). Check in Dependency Walker and/or cygcheck to see which it is - 
probably the libgfortran dll. Also note that since Julia itself is built 
using mingw-w64 compilers, trying to load libraries built by the standard 
cygwin compilers may be unreliable. You can install the cross-compiler 
package mingw64-x86_64-gcc-fortran from Cygwin's setup.exe, then invoke 
x86_64-w64-mingw32-gfortran rather than just gfortran and you'll get a dll 
that is more likely to be compatible with Julia.


On Wednesday, June 22, 2016 at 5:45:49 PM UTC-4, Kaela Martin wrote:
>
> I'm trying to get Julia to run a Fortran file on Windows 10, and Julia 
> says that it can't open the library. Libdl.dlopen also fails to open the 
> file. I've tried adding the current path to LOAD_PATH but still get the 
> same error.
>
> For a test case, I'm running the following module:
>
> module hello_module
>     use iso_c_binding
>     implicit none
> contains
>
>     subroutine hello() bind(C,name="hello")
> !DEC$ ATTRIBUTES DLLEXPORT :: hello
>       write(*,'(A)') "Hello World!!!"
>     end subroutine hello
>
> end module hello_module
>
> I'm compiling it in Cygwin64 (I'm on a 64bit Windows 10 machine) using 
> gfortran with:
>
> gfortran -shared -o2 -fPIC Hello.f90 -o HelloWorld.dll
>
> I get a warning that -fPIC is ignored, but the file compiles and creates 
> HelloWorld.dll
>
> In Julia, I call the library using
>
> ccall((:hello,"HelloWorld.dll"),Void,())
>
> which results in: 
>
> ERROR: could not load library "HelloWorld.dll"
> The specified module could not be found.
>
>  in dlopen at libdl.jl:36 (repeats 2 times)
>  in dlopen at deprecated.jl:32
>
> Just trying to open the module using Libdl.dlopen("HelloWorld.dll")  gives 
> the same error.
>
> Note that I moved the .dll file to a new location after compiling it since 
> the goal is to put the code in a single folder that other users can put on 
> their windows machines and run.
>
> How do I get Julia to open and run the code?
>
> Thanks,
> Kaela
>

Reply via email to