Note that there are some explanatory texts on larger screens.

plurals
  1. PODllNotFoundException using Mono P/Invoke: Why?
    primarykey
    data
    text
    <p>I keep getting DllNotFoundExceptions when trying to call my native library from C# (using Mono). I have a native library, for which I'm adding bindings.</p> <p>This is what I'm seeing:</p> <pre><code>$ grep DllImport generated/NativeLibrawLoader.cs | head -n 1 [DllImport("libfspotraw.dll")] $ cat libfspotraw-sharp.dll.config &lt;configuration&gt; &lt;dllmap dll="libglib-2.0-0.dll" target="libglib-2.0.so.0"/&gt; &lt;dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0.so.0"/&gt; &lt;dllmap dll="libgthread-2.0-0.dll" target="libgthread-2.0.so.0"/&gt; &lt;dllmap dll="libatk-1.0-0.dll" target="libatk-1.0.so.0"/&gt; &lt;dllmap dll="libgtk-win32-2.0-0.dll" target="libgtk-x11-2.0.so.0"/&gt; &lt;dllmap dll="libgdk-win32-2.0-0.dll" target="libgdk-x11-2.0.so.0"/&gt; &lt;dllmap dll="libgdk_pixbuf-2.0-0.dll" target="libgdk_pixbuf-2.0.so.0"/&gt; &lt;dllmap dll="libfspotraw.dll" target="/opt/gnome//lib/f-spot/libfspotraw.so.0"/&gt; &lt;/configuration&gt; </code></pre> <p>And an excerpt from the strace log:</p> <pre><code>5856 1247991911.215674 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.215814 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.215923 open("./lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.215992 open("./lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.216083 open("/opt/gnome//lib/f-spot/libfspotraw.so.0", O_RDONLY) = 25 5856 1247991911.216154 read(25, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\277\0\0004\0\0\0\\"..., 512) = 512 5856 1247991911.216226 fstat64(25, {st_mode=S_IFREG|0755, st_size=923041, ...}) = 0 5856 1247991911.216320 mmap2(NULL, 806536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 25, 0) = 0x2a26000 5856 1247991911.216431 mmap2(0x2a99000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 25, 0x72) = 0x2a99000 5856 1247991911.216506 mmap2(0x2a9f000, 310920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2a9f000 5856 1247991911.216563 close(25) = 0 5856 1247991911.217258 munmap(0x2a26000, 806536) = 0 5856 1247991911.217333 open("/opt/gnome//lib/f-spot/libfspotraw.so.0.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.217476 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.217548 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.217640 open("./lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.217708 open("./lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.217798 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.217866 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.218135 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.218215 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.218307 open("./lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.218398 open("./lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.218490 open("/opt/gnome//lib/f-spot/libfspotraw.so.0", O_RDONLY) = 25 5856 1247991911.218556 read(25, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000\277\0\0004\0\0\0\\"..., 512) = 512 5856 1247991911.218653 fstat64(25, {st_mode=S_IFREG|0755, st_size=923041, ...}) = 0 5856 1247991911.218741 mmap2(NULL, 806536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 25, 0) = 0x2a26000 5856 1247991911.218809 mmap2(0x2a99000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 25, 0x72) = 0x2a99000 5856 1247991911.218872 mmap2(0x2a9f000, 310920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2a9f000 5856 1247991911.218924 close(25) = 0 5856 1247991911.219514 munmap(0x2a26000, 806536) = 0 5856 1247991911.219583 open("/opt/gnome//lib/f-spot/libfspotraw.so.0.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.219697 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.219769 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.219859 open("./lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.219927 open("./lib/opt/gnome//lib/f-spot/libfspotraw.so.0.so.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.220584 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) 5856 1247991911.220666 open("lib/opt/gnome//lib/f-spot/libfspotraw.so.0.la", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) 5856 1247991911.224316 write(1, "\33[93m"..., 5) = 5 5856 1247991911.224531 gettimeofday({1247991911, 224545}, NULL) = 0 5856 1247991911.224583 gettimeofday({1247991911, 224595}, NULL) = 0 5856 1247991911.224625 gettimeofday({1247991911, 224637}, NULL) = 0 5856 1247991911.224667 gettimeofday({1247991911, 224679}, NULL) = 0 5856 1247991911.224737 write(1, "[Warn 10:25:11.224]"..., 20) = 20 5856 1247991911.224825 write(1, "\33[0m"..., 4) = 4 5856 1247991911.224949 write(1, " Caught an exception - /opt/gnome"..., 1024) = 1024 5856 1247991911.225511 write(1, "amming/Gnome/f-spot/src/PhotoImag"..., 248) = 248 5856 1247991911.225674 write(1, "\n"..., 1) = 1 </code></pre> <p>It appears as though it finds the library, but then ignores this fact and continues to probe for all kinds of nonexistant files. Does anyone know why?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload