Aller au contenu

Pbm Compilation sous Kylix


romca

Messages recommandés

Salut a tous, voilà mon souci.

j'ai installé la version 3 open de kylix sous mandrake10.1.

Tout est ok mais quand je veux compilé des unités d'un projet, j'ai des erreurs que je ne comprends pas. Les codes sources à compiler sont bons car sous Borland (sous Windows), il n'y aucune erreur.

je vous met une des unités a compiler avec un morceau du code d'erreur.

Kylix me sort un onglet "stdio.h" avec ce code dans l'onglet et l'erreur "2141 :erreur de syntaxe de déclaration":

Je pense que c'est parce que sûrement je n'ai pas les bonnes librairies qui doivent contenir les headers? mais si c'est cela lesquels et comment faire pour les installer et ou?

Merci par avance.

__BEGIN_NAMESPACE_STD

/* The opaque type of streams.

This is the definition used elsewhere.

*/

typedef struct _IO_FILE FILE;

__END_NAMESPACE_STD

#if defined __USE_LARGEFILE64

|| defined __USE_SVID

||defined __USE_POSIX \

|| defined __USE_BSD

|| defined __USE_ISOC99

|| defined __USE_XOPEN \

|| defined __USE_POSIX2

__USING_NAMESPACE_STD(FILE)

#endif

code source

//------------------testcardio---------------------------------------------------------

#pragma hdrstop //fin des fichiers en tête précompilés(ici il n'y en a pas)

#include <iostream.h>

#include "coeur.h"

//---------------------------------------------------------------------------

#pragma argsused //evite un message d'avertissement

int main(int argc, char* argv[]) //on pourrait utiliser sans pbm void main()

{

Coeur *leCoeur;

char cc;

int tmp;

leCoeur=new Coeur(1000);

leCoeur->Resume();

//affichage menu

cout<<"Taper s pour accelerer le rythme cardiaque"<<endl;

cout<<"Taper c pour calmer le rythme cardiaque"<<endl;

cout<<"Taper a pour stopper le Coeur"<<endl;

cout<<"Taper x pour sortir"<<endl;

//boucle de traitement du caractere entré

do

{

cc>>cin;

if(cc=='a') leCoeur->terminated();

if(cc=='s') leCoeur->majtempo(-10);

if(cc=='c') leCoeur->majtempo(+10);

}while(cc!='x');

delete leCoeur; //Destruction de l'objet cree dynamiquement

return (0);

}

Lien vers le commentaire
Partager sur d’autres sites

je croyais qu'en C++ onb ne devait plus mettre le .h dans les include (mais ça fait ben longtemps que j'ai pas fais de C++, d'ailleurs faut que je m'y remette ;) )

ça dépend des headers...

Mais oui, normalement pour iostream c'est :

#include <iostream>
using namespace std; /* pour ne pas devoir utilsier std::cout, std::endl, std::cerr mais cout, endl, cerr */

et ça marche :

#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
char cc;

cout<<"Touche?"<<endl;

cin >> cc;
if(cc=='a') cout << "bonne réponse!" << endl;
else cout << "mauvaise réponse!" << endl;

return 0;
}

(à compiler avec g++ ça se fait sans pb)

(remarque aussi comment marche le cin...)

//on pourrait utiliser sans pbm void main()

Erreur, il faut obligatoirement que la fonction main retourne un int, en tout cas sous unix, avec les dernières versions de gcc (3/4)

Lien vers le commentaire
Partager sur d’autres sites

ok j'ai essayé tout ce que vous m'avez conseillé mais ça change rien?

Auriez une autre idee?

Code source modifié:

//------------------testcardio---------------------------------------------------------

#pragma hdrstop //fin des fichiers en tête précompilés(ici il n'y en a pas)

#include <iostream>

#include "coeur.h"

//---------------------------------------------------------------------------

#pragma argsused //evite un message d'avertissement

using namespace std;

int main(int argc, char* argv[]) //on pourrait utiliser sans pbm void main()

{

Coeur *leCoeur;

char cc;

int tmp;

leCoeur=new Coeur(1000);

leCoeur->Resume();

//affichage menu

cout<<"Taper s pour accelerer le rythme cardiaque"<<endl;

cout<<"Taper c pour calmer le rythme cardiaque"<<endl;

cout<<"Taper a pour stopper le Coeur"<<endl;

cout<<"Taper x pour sortir"<<endl;

//boucle de traitement du caractere entré

do

{

cin>>cc;

if(cc=='a') leCoeur->terminated();

if(cc=='s') leCoeur->majtempo(-10);

if(cc=='c') leCoeur->majtempo(+10);

}while(cc!='x');

delete leCoeur; //Destruction de l'objet cree dynamiquement

return (0);

}

Lien vers le commentaire
Partager sur d’autres sites

je déplace dans programmation :up:

----------------------------------------------------

Salut,

Et si t'essayes de compiler avec g++ ? Il te mettra surement des erreurs plus parlantes.

g++ coeur.cpp main.cpp -o ton_prog

Parce que les ide des fois ça fait des trucs bizzares. :eeek2:

----------------------------------

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...