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

  FORUM HardWare.fr
  Programmation
  C++

  Problème Boost & STLPort sous Mingw (sous wxDev-C++)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème Boost & STLPort sous Mingw (sous wxDev-C++)

n°1802691
NounouRs
Non parce que c pas mon pied !
Posté le 21-10-2008 à 09:50:04  profilanswer
 

Bonjour,
 
Je compile avec GCC (enfin, j'essaye) un programme précédemment écrit sous Visual C++ (2005), qui a assez peu de classes (6) et qui fonctionne très bien.
Mais j'ai des problèmes !!!
 
J'utilise l'IDE wxDev-C++ qui est un fork modernisé de Dev-C++ comme à une époque j'utilisais cette IDE, je pense ne pas être trop perdu... mais pourtant...
 
J'ai des problèmes avec mes includes
 
Imaginons que je compile une classe Toto
J'ai découpé les header et les cpp en 2 fichiers :
Toto.h   qui contient la définition
Toto.cpp qui contient le source
 
Si je mets un include dans Toto.cpp (#include "Toto.h" )  
alors j'ai une erreur:
1 C:\MonProjetBidon\Toto.cpp In file included from Toto.cpp  
 
Super explicite, vous aurez remarqué.
 
Alors, je supprime cette include et je configure le compilateur pour utiliser des "precompiled header", et là, à la suprise générale :
30 C:\MonProjetBidon\Toto.cpp `Toto' has not been declared  
 
 
Toto.cpp et Toto.h sont dans le même répertoire qui est le même que le fichier projet .dev
 
J'ai aussi essayé avec ./


Message édité par NounouRs le 03-11-2008 à 11:50:54
mood
Publicité
Posté le 21-10-2008 à 09:50:04  profilanswer
 

n°1802710
NounouRs
Non parce que c pas mon pied !
Posté le 21-10-2008 à 10:27:37  profilanswer
 

Ok,  
 
Mauvaise interprétation de ma part, c'est la mise en page des erreurs de wxDev-C++  qui m'a mis dedans.
En fait, c'est une ligne titre, pas un message d'erreur, les erreurs viennent après
 
Et apparemment, j'ai des erreur sur les lib boost... il a l'air d'avoir bien fait l'include, mais je quand meme pas trouver les classes auquelles je fais référence.

n°1802759
NounouRs
Non parce que c pas mon pied !
Posté le 21-10-2008 à 12:04:27  profilanswer
 

Par contre, je n'ai pas résolu mon problème.
 
J'utilise des boost::filesystem::wpath  je pense que les headers de boost (hpp) sont bien trouvés, car je vois le chemin dans les directives de compilations (et ca marche sous Visual)   j'utilise un include en portée large "<>" sous la forme :
#include <boost/filesystem/path.hpp>
 
Je ne vois vraiment pas ce qu'il peut lui manquer.

n°1802905
NounouRs
Non parce que c pas mon pied !
Posté le 21-10-2008 à 18:08:00  profilanswer
 

C'est quoi le contraire de BOOST_FILESYSTEM_NARROW_ONLY ????  
 
J'ai fait un programme tout simple pour tester boost + gcc (mingw), avec une méthode contenant
std::wstring test(L"yahoo" );
boost::filesystem::wpath toto(test);
 
Et bizarrement, pas de problème avec wstring, mais par contre wpath, ne passe pas :)
 27    a.cpp    `wpath' is not a member of `boost::filesystem'  
 
Mais il se gourre !!!!


Message édité par NounouRs le 21-10-2008 à 18:08:47
n°1803044
NounouRs
Non parce que c pas mon pied !
Posté le 22-10-2008 à 09:19:42  profilanswer
 

up

n°1806127
guepe
J'ai du noir sur la truffe ?
Posté le 29-10-2008 à 21:17:18  profilanswer
 

Tu as bien ajoute le repertoire des includes de boost dans le projet ? Ca ressemble exactement a ca... J'ai justement configure hier code::blocks pour boost et gcc (en fait boost::thread) et c'est passe comme sur des roulettes  :D


---------------
Un blog qu'il est bien
n°1806240
NounouRs
Non parce que c pas mon pied !
Posté le 30-10-2008 à 10:56:05  profilanswer
 

Oui, je l'ai configuré, mais ca fait penser que la configuration n'est pas passée, j'ignore pourquoi.
Donc, je vais chercher dans cette direction, mais je risque de revenir vers vos conseils.
 
Vaut il mieux ajouter ces chemins au projet ou à l'interface ?

n°1806251
Joel F
Real men use unique_ptr
Posté le 30-10-2008 à 11:16:05  profilanswer
 

Perso je les mets trjrs dans les options de CB et non des projets, comme ça j'ai aps à me poser la question d ele faire. En outre ca me permets rapidos de creer un chtit fichier de test et d'avoir ttes mes libs de dispos.

n°1806478
NounouRs
Non parce que c pas mon pied !
Posté le 30-10-2008 à 17:01:16  profilanswer
 

J'ai fait un petit projet test, avec uniquement un test de la librairie Boost et voilà ce qu'il en ressort.
 
Lors d'utilise des boost::filesystem::path  aucun probleme, la compilation se passe bien, l'inclusion de Boost n'est donc pas en cause (meme si je vais devoir trouver d'ou vient mon probleme dans mon gros projet)
 
Par contre, lorsque le passe en wpath (et j'ai de l'expérience, j'utilise de dizaine de wpath dans mon gros projet), rien ne va plus, j'ai des messages d'erreur :
Ligne de code :  

Code :
  1. std::wstring test(L"yahoo" );
  2. boost::filesystem::wpath toto(test);


erreur retournée :

27 C:\Documents and Settings\moi\Mes documents\retest\a.cpp `wpath' is not a member of `boost::filesystem'


 
En plus à l'ouverture de mes projet, j'ai 30 secondes de lecture / parsing des lib boost (en-tetes) c'est un peu long, on ne peut pas l'éviter ?
 
Voici l'extrait du fichier path.hpp de Boost, comme on peut le voir, la déclaration de wpath n'est pas des plus compliquée... alors qu'est ce qui bloque ???

Code :
  1. #ifndef BOOST_FILESYSTEM_PATH_HPP
  2. #define BOOST_FILESYSTEM_PATH_HPP
  3. [...] //libs boost
  4. #include <string>
  5. #include <algorithm> // for lexicographical_compare
  6. #include <iosfwd>    // needed by basic_path inserter and extractor
  7. #include <stdexcept>
  8. #include <cassert>
  9. # ifndef BOOST_FILESYSTEM_NARROW_ONLY
  10. #   include <locale>
  11. # endif
  12. #include <boost/config/abi_prefix.hpp> // must be the last #include
  13. //----------------------------------------------------------------------------//
  14. namespace boost
  15. {
  16.   namespace BOOST_FILESYSTEM_NAMESPACE
  17.   {
  18.     template<class String, class Traits> class basic_path;
  19.     struct path_traits;
  20.     typedef basic_path< std::string, path_traits > path;
  21.     struct path_traits
  22.     {
  23.       typedef std::string internal_string_type;
  24.       typedef std::string external_string_type;
  25.       static external_string_type to_external( const path &,
  26.         const internal_string_type & src ) { return src; }
  27.       static internal_string_type to_internal(
  28.         const external_string_type & src ) { return src; }
  29.     };
  30. # ifndef BOOST_FILESYSTEM_NARROW_ONLY
  31.     struct BOOST_FILESYSTEM_DECL wpath_traits;
  32.    
  33.     typedef basic_path< std::wstring, wpath_traits > wpath;

Message cité 1 fois
Message édité par NounouRs le 30-10-2008 à 17:01:57
n°1806545
NounouRs
Non parce que c pas mon pied !
Posté le 30-10-2008 à 17:59:42  profilanswer
 

Je tiens peut etre un début de réponse...  
 
wcout    comment fait on pour l'utiliser avec g++ ? (Mingw)

mood
Publicité
Posté le 30-10-2008 à 17:59:42  profilanswer
 

n°1807589
NounouRs
Non parce que c pas mon pied !
Posté le 03-11-2008 à 09:33:28  profilanswer
 

C'est marrant comme on perd avec le temps.
Je pense qu'il faut que j'utilise stlport... ce qui m'étonne c'est qu'il ne soit pas intégré à Dev-C++ (wx)  

n°1807610
Joel F
Real men use unique_ptr
Posté le 03-11-2008 à 10:54:59  profilanswer
 

NounouRs a écrit :


En plus à l'ouverture de mes projet, j'ai 30 secondes de lecture / parsing des lib boost (en-tetes) c'est un peu long, on ne peut pas l'éviter ?


 
Dans les Settings de C::B, t'as une option 'disable file indexing'.

n°1807611
NounouRs
Non parce que c pas mon pied !
Posté le 03-11-2008 à 11:01:46  profilanswer
 

C'est fort pratique, merci bien.
 
J'avais toujours cru que stlport était build-in, j'entends par là que elle se compilait avec le projet...   mais il faut des librairies en fait.
Et la distrib officielle de stlport n'en contient pas (normal me direz vous)
 
Savez vous comment compiler stlport sous wxDev-C++ (Mingw) ?
 
Apparemment, il y a des .mak deja fait pour gcc, mais je suis bloqué là, je ne me rappelle pas que wxDev intègre nmake...
 
PS :  j'ai lu les docs de stlport, je n'ai pas vu ce qui m'interressait
 
 
J'ajoute des infos... je tente la compilation avec make en utilise la commande recommendée dans les docs : make -f gcc.mak depend
 
j'utilise le make.exe qui est dans les binaires de wxDev-C++
 
Mais là, rien ne va plus, j'ai des messages d'erreur ( des bin manquants) :
uname: not found
tr: not found
process_begin: CreateProcess((null), uname -v, ...) failed.
 
 
etc etc...
 
c'est comme si tout était fait pour compiler avec gcc sous Linux, mais là, je suis sous Windows... je ne comprend toujours pas comment certains font pour compiler stlport sur mingw (wxdev-c++)
 
J'ai finalement compilé avec une version standalone de mingw (mais je n'ai aucune certitude quant a la compitibilité des lib générées sous wxdevc++)


Message édité par NounouRs le 03-11-2008 à 12:17:06
n°1809283
Joel F
Real men use unique_ptr
Posté le 07-11-2008 à 10:57:00  profilanswer
 

bah en general, tu recupére les Binutils windows en meme temps que mingw. Ils contiennt les versiosn windows de l'ensemble des commandes unix classiques


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

  Problème Boost & STLPort sous Mingw (sous wxDev-C++)

 

Sujets relatifs
[Java] probleme reaffichage contentPane[Octave] La librairie Matlab libre (C++ inside)
Probleme d'url rewriting[C#] OCR Asprise
[C#] Position control dynamique dans panel avec scrollbarProjet en C
Problème JInternalFrameExercice C++
Exercice C++ 
Plus de sujets relatifs à : Problème Boost & STLPort sous Mingw (sous wxDev-C++)


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