IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mono .NET Discussion :

[Mono] Compiler en bibliothèque dynamique (.so)


Sujet :

Mono .NET

  1. #1
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut [Mono] Compiler en bibliothèque dynamique (.so)
    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.)

  2. #2
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Il s'avère qu'il n'est pas possible d'obtenir directement une bibliothèque dynamique. Cependant, il existe une solution : embarquer mono dans du code C. Le code .NET peut alors appeler les fonctions définies en C, et le code C peut appeler les fonctions .NET. J'ai essayé, et ça marche vraiment bien.

    Si ça intéresse des gens, tout est décrit ici : http://www.mono-project.com/Embedding_Mono

    Je vais ensuite compiler le fichier C intermédiaire (qui définit et exporte les fonctions, en plus d'embarquer mono) en bibliothèque dynamique.

    Résolu.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Embarqué] [Raspberry Pi] Compilation croisée : bibliothèques dynamiques
    Par jackk dans le forum Plateformes
    Réponses: 18
    Dernier message: 28/09/2013, 14h43
  2. Réponses: 5
    Dernier message: 22/05/2012, 11h48
  3. CMake : compilation de bibliothèques dynamiques
    Par sunmat dans le forum Systèmes de compilation
    Réponses: 1
    Dernier message: 02/11/2011, 22h24
  4. Compiler une bibliothèque
    Par petdelascar dans le forum Windows
    Réponses: 1
    Dernier message: 10/12/2005, 17h42
  5. [C#] mono compilation webform XSP
    Par ALCINA dans le forum Mono
    Réponses: 2
    Dernier message: 11/08/2005, 13h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo