Include <iostream> sur NetBeans LINUX
ABouras
-
Char Snipeur Messages postés 10112 Statut Contributeur -
Char Snipeur Messages postés 10112 Statut Contributeur -
Bonjour,
Je compile le sdk 2.0 de ARDrone avec NetBeans sur LINUX. Je veux y inclure la gestion des ports série pour récupérer les coordonées GPS d'un module XBee. Pour cela, j'ai écris un programme qui fonctionne utilisant les fonctions de base open(...) et read(...) de iostream.h. Ce programme fonctionne avec le compilateur Monodevelop, mais quand je l'inclut dans le projet ARDrone sur NetBeans, la compilation donne :
qui fait référence à la ligne
J'ai testé en écriant <iostream.h> au lieu de <iostream>. J'ai vérifié que le fichier iostream existait dans le système et il y ait dans les chemins suivant :
Et j'ai rentré dans File/Project properties/Code assistance/C et C++ Compiler les chemins précédents, et aussi dans Tool/option/C-C++/Code assistance
Seulement, je ne sais pas vraiment quel chemin des trois est le plus adapté. Aussi, la bibliothèque ARDrone est écrite en C, et mon programme de gestion des ports séries est écrit en C++, y'a t-il un conflit ? Un compiler C++ sait compiler du C ?
Merci d'avance pour vos réponses !
Je compile le sdk 2.0 de ARDrone avec NetBeans sur LINUX. Je veux y inclure la gestion des ports série pour récupérer les coordonées GPS d'un module XBee. Pour cela, j'ai écris un programme qui fonctionne utilisant les fonctions de base open(...) et read(...) de iostream.h. Ce programme fonctionne avec le compilateur Monodevelop, mais quand je l'inclut dans le projet ARDrone sur NetBeans, la compilation donne :
erreur fatale: iostream : Aucun fichier ou dossier de ce type
qui fait référence à la ligne
#include <iostream>
J'ai testé en écriant <iostream.h> au lieu de <iostream>. J'ai vérifié que le fichier iostream existait dans le système et il y ait dans les chemins suivant :
/usr/include/c++/4.6 /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++ /usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/include/c++/backward
Et j'ai rentré dans File/Project properties/Code assistance/C et C++ Compiler les chemins précédents, et aussi dans Tool/option/C-C++/Code assistance
Seulement, je ne sais pas vraiment quel chemin des trois est le plus adapté. Aussi, la bibliothèque ARDrone est écrite en C, et mon programme de gestion des ports séries est écrit en C++, y'a t-il un conflit ? Un compiler C++ sait compiler du C ?
Merci d'avance pour vos réponses !
A voir également:
- Include <iostream> sur NetBeans LINUX
- Linux reader - Télécharger - Stockage
- Toutou linux - Télécharger - Systèmes d'exploitation
- R-linux - Télécharger - Sauvegarde
- Linux mint 22.1 - Accueil - Linux
- Backtrack linux - Télécharger - Sécurité
4 réponses
Salut.
un peu de mal à comprendre ce que tu fais.
C'est du C++ ? Tu parle de monodevelop, il n'y a aucun lien avec Mono et la plateforme .NET de Microsoft ?
Pour ce qui est de la compatibilité C/C++, la plupart du temps (mais pas toujours) un programme C compile en C++. Si tu veux en savoir plus la dessus, il y a une page internet bien faite.
Le problème c'est plus d'appeler une fonction C++ en C, car C++ décore les noms pour la surcharge.
Du coup, il faut modifier le programme C++, ou mettre les noms décorés en C (plutôt compliqué à faire). En C++, pour ne pas faire de décoration, il faut mettre extern "C" devant les fonctions.
Voilà quelques informations. N'hésite à demander des précisions.
un peu de mal à comprendre ce que tu fais.
C'est du C++ ? Tu parle de monodevelop, il n'y a aucun lien avec Mono et la plateforme .NET de Microsoft ?
Pour ce qui est de la compatibilité C/C++, la plupart du temps (mais pas toujours) un programme C compile en C++. Si tu veux en savoir plus la dessus, il y a une page internet bien faite.
Le problème c'est plus d'appeler une fonction C++ en C, car C++ décore les noms pour la surcharge.
Du coup, il faut modifier le programme C++, ou mettre les noms décorés en C (plutôt compliqué à faire). En C++, pour ne pas faire de décoration, il faut mettre extern "C" devant les fonctions.
Voilà quelques informations. N'hésite à demander des précisions.
Bonjour et merci pour ta réponse.
Oublie monoDevelop, c'était juste un IDE que j'avais choisi pour faire mes programmes test. Mais mon véritable IDE final est NetBeans. J'essaye d'inclure deux fichiers (serialib.cpp et serialib.h) dans le projet ARDrone 2.0 (qui se compile très bien tout seul).
Mon seul problème, c'est l'erreur lors de la compilation :
Quelle(s) piste(s) faut-il suivre pour corriger ce problème ?
PS : je bosse sur Linux (UBuntu) donc j'utilise pas .NET de Microsoft ...
Oublie monoDevelop, c'était juste un IDE que j'avais choisi pour faire mes programmes test. Mais mon véritable IDE final est NetBeans. J'essaye d'inclure deux fichiers (serialib.cpp et serialib.h) dans le projet ARDrone 2.0 (qui se compile très bien tout seul).
Mon seul problème, c'est l'erreur lors de la compilation :
erreur fatale: iostream : Aucun fichier ou dossier de ce type
Quelle(s) piste(s) faut-il suivre pour corriger ce problème ?
PS : je bosse sur Linux (UBuntu) donc j'utilise pas .NET de Microsoft ...
J'ai essayé en écrivant :
mais ça ne fonctionne toujours pas ...
#ifdef _c
extern "Cpp"
{
#endif
#include <iostream>
#ifdef
}
#endif _c
mais ça ne fonctionne toujours pas ...