[Mono-list] Strange error with a simple pinvoke and g++ 4.0
Antonio Martínez Alvarez
amartinez at atc.ugr.es
Fri Jul 22 05:26:10 EDT 2005
Hello,
I don't understand the DllNotFound exception when I compile an run this
little program which uses pinvoke.
---------<file mylib2.cc>----------
#include <iostream>
using namespace std;
extern "C" int diesther ()
{
cout << " Esther " << endl;
return 7;
}
---------</file mylib2.cc>----------
---------------<file test_mylib2.cs>-------
using System;
using System.Runtime.InteropServices;
namespace kkkkk
{
public class Prueba
{
[DllImport("liboctivate")]
private static extern int diesther ();
public static void Main()
{
Console.Write("Hola");
diesther ();
}
}
}
---------------</file test_mylib2.cs>-------
I follow these commands to compile and run ...
g++ -fpic -c -I/usr/include/octave-2.9.3 mylib2.cc
g++ -shared -o liboctivate.so mylib2.o
rm /usr/lib/liboctivate.so
cp liboctivate.so /usr/lib
ldconfig -n /usr/lib
mcs test_mylib2.cs
mono test_mylib2.exe
2 usefuls outputs to debug the/my error:
#ldconfig -p|fgrep liboctivate
liboctivate.so (libc6) => /usr/lib/liboctivate.so
#cat /usr/lib/liboctivate.so| strings | grep diesther
diesther
_GLOBAL__I_diesther
diesther
I have probed with and without extern "C" and with gcc instead of g++ to
creat the liboctivate.so library.
I have:
gcc and g++ version 4.0.1 (Debian 4.0.1-2)
Linux kernel version 2.6.11-1-686
Mono version version 1.1.8.2
MCS version 1.1.8.0
This is the result ... Any ideas ?
----------<output>---------------
Hola
Unhandled Exception: System.DllNotFoundException: liboctivate
in (wrapper managed-to-native) kkkkk.Prueba:diesther ()
in <0x00012> kkkkk.Prueba:Main ()
----------</output>---------------
Thanks in advance !!
---
Antonio Martinez
More information about the Mono-list
mailing list