probleme de include en melangeant C et C++

probleme de include en melangeant C et C++ - C++ - Programmation

Marsh Posté le 23-04-2009 à 15:10:29    

Bon probleme qui semble trivial mais la je cale...
 
J ai code deux librairies.
 
lib1 utilise le sparse solver TAUCS.. code en C
lib2 utilise tvmet qui fournit de l algebre lineaire efficace en petite dimensions
 
J avais des pbs mysterieux a la compil quand TAUCS etait inclu avant tvmet. Bon dans l absolu je peux inclure l un avant l autre et pas m embeter, mais ca ne semble pas tres propre.
Apres investigation il s avere que TAUCS inclut <complex.h> qui pourrit tvmet.
 
Quelle est la procedure a suivre dans ce genre de situation sachant que je ne peux pas aller trifouiller dans taucs.h ?
 
Pour annecdote, dans un combat minimal entre tvmet et complex.h j ai tente n importe quoi :
- mettre complex.h dans extern "C" -> echec
- mettre complex.h dans un namespace -> echec
- include complex apres complexe.h -> echec dans complex forcement
 
Merci.

Reply

Marsh Posté le 23-04-2009 à 15:10:29   

Reply

Marsh Posté le 23-04-2009 à 15:12:49    

mes les include TAUCS dans un namespace taucs et appelle les fonctions depusi ce dernier mais TOUS pas seulement complexe


Message édité par Joel F le 23-04-2009 à 15:13:05
Reply

Marsh Posté le 23-04-2009 à 15:36:57    

Merci Joel pour ta reponse.  
 
Malheureusement apres d autres tests complex.h definit une macro complex -> le namespace ne change rien.
 
Du coup j ai juste fait  :
 

Code :
  1. extern "C"
  2. {
  3. #include <taucs.h>
  4. }
  5. #ifdef complex
  6. #undef complex
  7. #endif
  8. #include <tvmet/Vector.h>
  9. int main(int argc, char** argv) { return 0; }


 
c est crade mais ca a l air de passer.
 

Reply

Marsh Posté le 23-04-2009 à 18:49:46    

le bon vieux gag de la macro non prefixée.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed