It was the cross-compiler problem. It worked when I compiled it using
mignw-w64 compilers.

Thanks!
Kaela

On Wed, Jun 22, 2016 at 8:06 PM, Tony Kelman <[email protected]> wrote:

> 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