I have an open issue assigned to me to go implement Sys.dllist() for windows :/
but nm /usr/local/lib/libsundials_cvode.so is listing all of the functions you call call, so youc can just look to see see if CVodeCreate is in the list. It also indicates the visibility of that function -- to be called from external code, it must have a capital T. On Wed, Mar 12, 2014 at 1:05 AM, Thomas Moore <[email protected]> wrote: > I fear print(Sys.dlliist()) is not an option in julia. There's lots of > other options (Sys,MACHINE, Sys.init, etc) but no Sys.dllist(). > > My Julia install is Version 0.3.0-prerelease+308 if that is relevant :) > > Also, nm /usr/local/lib/libsundials_cvode.so just gives me a long list > like this: > > 0000000000200e40 a _DYNAMIC > 0000000000200fe8 a _GLOBAL_OFFSET_TABLE_ > w _Jv_RegisterClasses > 0000000000200e20 d __CTOR_END__ > 0000000000200e18 d __CTOR_LIST__ > 0000000000200e30 d __DTOR_END__ > 0000000000200e28 d __DTOR_LIST__ > 00000000000005f0 r __FRAME_END__ > 0000000000200e38 d __JCR_END__ > 0000000000200e38 d __JCR_LIST__ > 0000000000201010 A __bss_start > w __cxa_finalize@@GLIBC_2.2.5 > 0000000000000550 t __do_global_ctors_aux > 00000000000004a0 t __do_global_dtors_aux > 0000000000201008 d __dso_handle > w __gmon_start__ > 0000000000201010 A _edata > 0000000000201020 A _end > 0000000000000588 T _fini > 0000000000000448 T _init > 0000000000000480 t call_gmon_start > 0000000000201010 b completed.6531 > 0000000000201018 b dtor_idx.6533 > 0000000000000520 t frame_dummy > > Thanks again > > Tom > > > On Tuesday, 11 March 2014 22:57:57 UTC+10, Ivar Nesje wrote: >> >> Your code works for me, so I think there is still a problem on your >> system configuration. >> >> The error is about the C function `CVodeCreate`, not the Julia function >> with the same name, and apparently Julia finds the sundials library, but it >> does not contain the function. >> >> Try to run `print(Sys.dllist())` after running your test code to see what >> libraries are actually loaded. When you know what library gets loaded, you >> can inspect the library with eg. `nm /usr/local/lib/ >> libsundials_cvode.dylib`, and see if you can find the `CVodeCreate` >> function. >> >> Ivar >> >> >> kl. 11:35:46 UTC+1 tirsdag 11. mars 2014 skrev Thomas Moore følgende: >>> >>> OK, running >>> >>> push!(DL_LOAD_PATH, "/usr/local/lib/") >>> >>> has improved the situation a little: now we get this error: >>> >>> ERROR: ccall: could not find function CVodeCreate in library >>> libsundials_cvode >>> in ode at /home/thomas/.julia/Sundials/src/Sundials.jl:250 >>> >>> At least the shared library is recognised :) >>> >>> Sundials.CVodeCreate seems to be a generic function, but in Sundials.jl >>> at line 250 the call to it doesn't seem to be recognised - the error is >>> driven by this call to it: >>> >>> mem = CVodeCreate(CV_BDF, CV_NEWTON) >>> >>> Any more ideas? :D >>> >>> Again, a massive thanks! I'm sure this will be useful to others looking >>> for a nice DAE solver in Julia in the near future :) >>> >>> Tom >>> >>> On Monday, 10 March 2014 23:25:25 UTC+10, Isaiah wrote: >>>> >>>> try: >>>> >>>> julia> push!(DL_LOAD_PATH, "/usr/local/lib/") >>>> >>>> you can also double-check whether it is loadable: >>>> >>>> julia> dlopen("/usr/local/lib/libsundials_cvode.so") >>>> >>>> clang.jl is only a dependency for generating the bindings, not at >>>> runtime. >>>> >>>> >>>> On Mon, Mar 10, 2014 at 8:42 AM, Thomas Moore <[email protected]>wrote: >>>> >>>>> Thanks for your help everyone! I couldn't find the .so file >>>>> originally, but after building it again with ./configure --enable-shared >>>>> there was a libsundials_cvode.so in my /usr/local/lib. However I still >>>>> have >>>>> the same problem. So far I have: >>>>> >>>>> removed sundials with Pkg.rm("Sundials") >>>>> reinstalled it with Pkg.add("Sundials") >>>>> >>>>> And then run: >>>>> >>>>> push!(DL_LOAD_PATH, "/usr/local/lib/libsundials_cvode.so") >>>>> >>>>> And then run the function I copied above. I fear I'm still getting the >>>>> exact same error though. It seems it's not recognising the existence of >>>>> the >>>>> .so file :( >>>>> >>>>> Any recommendations? My (novice) thoughts are: possibly julia doesn't >>>>> have permission to access libsundials_cvode.so, I don't know why not >>>>> though. Also maybe I need some other package installed: for instance, is >>>>> Clang.jl a dependency - it isn't listed as such? >>>>> >>>>> Thanks! >>>>> >>>>> >>>>> >>>>> On Monday, 10 March 2014 21:53:54 UTC+10, Isaiah wrote: >>>>> >>>>>> Ah, good call. Use `./configure --enable-shared` for the Makefile >>>>>> build. >>>>>> >>>>>> >>>>>> On Mon, Mar 10, 2014 at 3:34 AM, Ivar Nesje <[email protected]> wrote: >>>>>> >>>>>>> I do not know CMake, but now that I have a computer I found out that >>>>>>> I probably used >>>>>>> >>>>>>> BUILD_SHARED_LIBS:BOOL=on >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> kl. 07:43:38 UTC+1 mandag 10. mars 2014 skrev Ivar Nesje følgende: >>>>>>> >>>>>>>> Sundials does not compile a shared library by default. You must >>>>>>>> look in the PDF manual to find the right option to send to make or >>>>>>>> configure. (Large pdf is hard to read on phone) >>>>>>> >>>>>>> >>>>>> >>>>
