Précompilation cpp - et après ?

Précompilation cpp - et après ? - C++ - Programmation

Marsh Posté le 01-04-2005 à 15:34:40    

Bonjour,
 
J'avais fait part précédemment d'un problème rencontré à reconnaître, en fortran, les parties d'un code ne devant être pas être lue :
 
En gros, j'avais, qq part dans le code :
 

Code :
  1. ...
  2. #ifdef TOTO
  3. faire tata
  4. #endif
  5. ...


 
Je voulais que le code n'éxécute tata que si TOTO est définie.
 
Ce type de syntaxe semble passer en c++ et pas en fortran. :cry:  
 
Depuis j'ai découvert le précompilateur cpp  :) que je ne conaissais pas et qui semble résoudre partiellement mon problème. En effet, il génère un nouveau texte de code qui tient compte de mon #endif. Le problème c'est que des lignes sont rajoutées en début du code qui ne sont plus acceptées à la création du fichier " *.o ". Pour en revenir au C++, partant de main.C :
 

Code :
  1. #include <iostream>
  2. using namespace std;
  3. #define TOTO
  4. int main()
  5. {
  6. #ifdef TOTO
  7.   cout << "TOTO" << endl;
  8. #else
  9.   cout << "TATA" << endl;
  10. #endif
  11. }


 
Je lance :
 
cpp main.C main.Cp
 
J'essaie ensuite de faire :
 
g++ -c main.Cp
 
et j'obtiens un message :
 
linker input file unused because linking not done  
 
A quoi correspond ce message ? Est ce que j'ai mal compris ce que fait le précompilateur cpp (préparer la compilation ? )
Sinon, comment l'utiliser de façon à réaliser cette relecture du fichier en fonction des variables définies ?
 

Reply

Marsh Posté le 01-04-2005 à 15:34:40   

Reply

Marsh Posté le 01-04-2005 à 15:36:26    

ce message provient du fait que tu compiles, mais que tu ne linkes pas... faut passer ton fichier objet au linker si tu veux un exécutable, ou virer le -c de la ligne de commande


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-04-2005 à 15:41:36    

Je viens d'essayer :
 
g++ main.Cp  
 
directement. Ca ne marche pas mieux maintenant j'ai :
 
main.Cp: file not recognized: File format not recognized
collect2: ld returned 1 exit status
 
 
Donc ca ne marche pas mieux ! D'autre part, est ce que vous sauiez à quoi correspond un précompilateur exactement ? Est ce juste un outil pour relire du texte de programmation ? C'est pour ma culture personnelle ;)

Reply

Marsh Posté le 01-04-2005 à 15:56:07    

renomme ton .cp en .cpp


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 01-04-2005 à 15:59:51    

Ok, Merci bcp !
 
Effectivement (je viens de découvrir ton message mais je venais juste de faire le test de mon coté), il y a bien un problème de ce coté la !
Je n'ai pas vraiment compris la raison (pourquoi si je donne le nom d'un fichier C++, le compilateur g++ refuse de la compiler ?), mais ça fonctionne mieux.

Reply

Sujets relatifs:

Leave a Replay

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