Bonjour,
J'ai un logiciel (et son code) qui a écrit en C++ classique sous Linux. Ce logiciel doit notamment s'interfacer avec d'autres langages. Pour cela, le code écrit dans les autres langages est compilé en bibliothèque dynamique (fichiers .so). Cela marche bien : le logiciel peut appeler des fonctions déclarées dans les bibliothèques, et les bibliothèques peuvent appeler les fonctions exportées du logiciel. Ceci fonctionne pour un certain nombre de langages (C, Caml, Java, Pascal...).
Je souhaiterais pouvoir utiliser aussi les langages de .NET. Pensez-vous que cela soit possible ? Peut-on compiler du code .NET en bibliothèque dynamique pour Linux ?
J'ai fait quelques tests pour le moment. J'ai écrit une bibliothèque, qui exporte une fonction (appelons-la "foo"), et qui est compilée avec Mono. J'ai obtenu un fichier .dll, que j'ai converti en code natif (mono --aot). Cependant, le fichier .so obtenu n'exporte pas la fonction que j'avais déclarée : j'ai vérifié les symboles avec nm, et le nom foo n'apparait pas. Cependant, il existe des symboles tels que : "method_info", "class_info". Peut-être existe-t-il un moyen d'utiliser ces fonctions pour appeler ma fonction foo ?
Toute piste serait la bienvenue.
Merci par avance.
(PS : je ne suis pas tout à fait sûr d'utiliser le bon forum, déplacez si nécessaire.)
Partager