[Mono-list] SWIG/P/Invoke not working in 2.2,2.4

fevans fevans at harris.com
Sun Apr 26 16:54:12 EDT 2009


I've got a pretty big SWIG investment. When I use the Mono1.9.1 installer, my
SWIG classes work in both Windows and Fedora. The debian installer is no
longer maintained, so upgrading to a newer version of mono immediately
introduces a thousand new questions. How did I compile it? What
config-settings, etc.

The error message is the usual one:
====================================
Mono-INFO: DllImport attempting to load: 'libhutil_csharp'.
Mono-INFO: DllImport loading location: 'libhutil_csharp.so'.
Mono-INFO: DllImport error loading library: 'libhutil_csharp.so: cannot open
shared object file: No such file or directory'.
Mono-INFO: DllImport loading library: './libhutil_csharp.so'.
Mono-INFO: DllImport error loading library './libhutil_csharp.so: cannot
open shared object file: No such file or directory'.
Mono-INFO: DllImport loading: 'libhutil_csharp'.
Mono-INFO: DllImport error loading library 'libhutil_csharp: cannot open
shared object file: No such file or directory'.

(<unknown>:10993): Mono-WARNING **: DllImport unable to load library
'libhutil_csharp: cannot open shared object file: No such file or
directory'.
====================================

1. The library is in my LD_LIBRARY_PATH.
2. I've run ldd to verify that its dependencies are accounted for.
I've generated a lot of logs on this with MONO_LOG_LEVEL and LF_DEBUG.
Trouble is, there's nothing helpful.

QUESTION:
====================
1. Is there any known behavior change in p/Invoke, between mono 1.9.1 and
mono 2.0+?

2. If p/Invoke is failing due to a higher order dependency, do any tools
exist for reporting this? ldd and objdump don't help.

The basic "Hello World" example from the following URL didn't help.
http://mono-project.com/Interop_with_Native_Libraries

        [DllImport ("libc.so")]

        I had to change it to the following

        [DllImport("libc.so.6")]
        private static extern int getpid();

So, the good news is I was able to get this basic example working. But
beyond this basic example, I have no idea why the dll-loader is flatly
ignoring (not even probing my dll).


-- 
View this message in context: http://www.nabble.com/SWIG-P-Invoke-not-working-in-2.2%2C2.4-tp23246504p23246504.html
Sent from the Mono - General mailing list archive at Nabble.com.



More information about the Mono-list mailing list