Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1982 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  [Résolut]liaison Ada avec un .o C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolut]liaison Ada avec un .o C

n°1914550
The matrix
Chacun fait ce qu'il en veut.
Posté le 12-08-2009 à 19:20:47  profilanswer
 

Salut,
 
J'utilise donc la lib portmidi qui fournie une fonction OpenOutput().
Cette fonction modifie les argument passés en paramètre.
Donc, je ne peu pas faire d'import avec Ada.
J'ai donc écris un petit code pour contourné le problème.
Je me retrouve avec un .o.
Mais j'ai oublié comment lier mon objet avec ce .o.
Qui me dis ?
Merci !


Message édité par The matrix le 12-08-2009 à 20:31:56

---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter
mood
Publicité
Posté le 12-08-2009 à 19:20:47  profilanswer
 

n°1914558
The matrix
Chacun fait ce qu'il en veut.
Posté le 12-08-2009 à 19:56:42  profilanswer
 

Hello !
 
J'ai trouvé a priori... Mais ça marche pas tout de même... Alors, je sais pas quoi poser comme question... A part peut-être ... Pourquoi ? Ou encore Comment ?
 
j'ai essayé de compiler avec le commande suivante :

gnatmake -o main main.adb -largs open_handler.o -lportmidi -lporttime


 
Ou portmidi et porttime son deux bibliothèque et open_handler le petit code C suivant :

Code :
  1. #include <stdio.h>
  2. #include <portmidi.h>
  3. #include <porttime.h>
  4.  
  5. #define DRIVER_INFO NULL
  6. #define OUTPUT_BUFFER_SIZE 0
  7. #define TIME_PROC ((long (*)(void *)) Pt_Time)
  8. #define TIME_INFO NULL
  9. #define TIME_START Pt_Start(1, 0, 0) /* timer started w/millisecond accuracy */
  10.  
  11. long latency = 0;
  12.  
  13. int Open_Handler (int device) {
  14.  
  15.  PmStream * midi;
  16.  
  17.  TIME_START;
  18.  
  19.  Pm_OpenOutput(&midi,
  20.                device,
  21.                DRIVER_INFO,
  22.                OUTPUT_BUFFER_SIZE,
  23.                (latency == 0 ? NULL : TIME_PROC),
  24.                (latency == 0 ? NULL : TIME_INFO),
  25.                latency);
  26.  return midi;
  27. }


Que puis-je faire ? Merci !
 
 
 
Ps : Message d'erreur suivant

gnatbind -x main.ali
gnatlink main.ali -o main open_handler.o -lportmidi -lporttime
./main.o: In function `_ada_main':
main.adb:(.text+0x42b): undefined reference to `Open_Handler'
collect2: ld returned 1 exit status
gnatlink: error when calling /usr/bin/gcc-4.3
gnatmake: *** link failed.


Message édité par The matrix le 12-08-2009 à 20:01:19

---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter
n°1914560
The matrix
Chacun fait ce qu'il en veut.
Posté le 12-08-2009 à 20:06:54  profilanswer
 

Yep !
 
Alors, je ne sais si c'est la seule explication mais... J'ai déplacé la déclaration de PmStream * midi; à l'extérieur de la parti exécutive et.... Ca marche ! [:kadreg]


---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  [Résolut]liaison Ada avec un .o C

 

Sujets relatifs
[C++] Cherche lib + howto pour utiliser le pilote wifi (linux)[Résolut]Conversion d'un base 10 en base 16
accès à fonction importée à accè à fonction importé.( Prog C )Probleme Afficheur Lcd 2x16
[Résolut]Traduction du C++utilisation d'un librairie C avec Ada.
[Ada] [Conception] Un compositeur interprète avec Ada. 
Plus de sujets relatifs à : [Résolut]liaison Ada avec un .o C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR