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

Interfaçage autre langage Python Discussion :

[Cython] Impossible de me linker avec les sorties de Cython


Sujet :

Interfaçage autre langage Python

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut [Cython] Impossible de me linker avec les sorties de Cython
    Bonjour,
    Je viens juste de commencer avec Cython avec cet exemple simple:http://docs.cython.org/src/quickstart/build.html.
    Cython m'a généré le .c, .pyd, .a et .o.
    Maintenant J'aimerais créer une application en C qui utilise d'une manière ou d'une autre ces sorties. hélas je n'y suis pas arrivé. malgré des recherches sur le net, je n'ai rien trouvé de tel.

    Note: J'ai utilisé gcc ($ gcc test.c ... -lhello)

    test.c source code:
    #include <Python.h>
    #include <stdio.h>
    #include <stdlib.h>

    /*comme cython ne génère pas de .h, j'ai mis son prototype sans conviction, et ca chie à la compil'*/
    extern static PyObject* __pyx_pf_5hello_say_hello_to(PyObject *__pyx_self, PyObject *__pyx_v_name);

    int main(void)
    {
    puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */

    __pyx_pf_5hello_say_hello_to(NULL, NULL);/* ca chie ici aussi; si j'enlève le 'extern...', il ne me reconnait pas cette fonction... normal */

    return EXIT_SUCCESS;
    }

    Si vous avez une petite idée, ou quoique ce soit, je suis preneur!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 758
    Points : 970
    Points
    970
    Par défaut
    bonjour,

    il faut utiliser une définition particulière pour la classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    cdef public class CDerived(CBase) [object CDerived_object, type CDerived_type]:
       ...
    j'ai tiré ceci de la doc là:

    http://docs.cython.org/src/userguide...xtension-types

    au prix de moult essais, donc je ne maitrise pas vraiment mais cela fonctionne et cython me génère un header.

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse, je vais essayer.

    Il y aurait également un autre moyen pour générer un .h : ajouter le keyword 'api'. J'ai alors bien un 'hello_api.h' de créer. A tester plus en profondeur donc.

    .: BreizhGatch

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/06/2008, 09h22
  2. Réponses: 9
    Dernier message: 03/10/2007, 21h45
  3. Réponses: 1
    Dernier message: 09/08/2006, 13h25
  4. C++, intercepter les sorties avec les raw sockets
    Par ThibG dans le forum Développement
    Réponses: 6
    Dernier message: 08/08/2005, 10h44
  5. PB sortie standard avec les PTHREAD !!!
    Par djspit dans le forum C++
    Réponses: 15
    Dernier message: 19/11/2004, 01h17

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