| C++: fichier bat pour lancer le compilateur[résolu] | |
|
|
Auteur | Message |
---|
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 0:35 | |
| Bonsoir. Je suis nouveau ici, et aussi en C++ dont je suis le tutoriel du siteduzéro. Je vois que ce forum est actif, contrairement à d'autre pour ce langage, auquel on voit beaucoup de question, et peu de réponses. Pour apprendre le C++, j'ai fait un programme dans un autre langage, afin de retrouver facilement les caractéristiques, les problèmes, et toutes les informations qui me sont utiles pour avancer. J'ai aussi différents boutons qui me permettent d'écrire les exemple du tuto, et de les exécuter. tous les exemples peuvent être compilés par un bouton qui lance un fichier .bat. Jusqu'à présent cela fonctionnait bien, sauf qu'en suivant le tuto du site qui consiste à décomposer une fonction en plusieurs fichiers: fonction.h, fonction.ccp et main.cpp, la console m'indique que la référence en rapport avec la question est indéfinie. J'ai eu aussi ce problème avec Code::blocks, et en réinstallant celui-ci, ce problème à disparu avec cet éditeur. Maintenant je tiens à pouvoir compiler directement sans Code::blocks, déjà pour des raisons de praticité avec mon programme, le reste c'est pour plus tard. Si quelqu'un pouvait corriger mon fichier .bat de lancement car je ne connais rien ou très peu pour cette programmation. J'ai chipé ici et là sur les forum pour faire ce fichier .bat, dont voici le code: - Code:
-
@echo. @echo Setting up environment for using MinGW with gcc from %~dp0. @set PATH=%~dp0bin;%PATH% g++ -o c:\MAPt\teste\bin\Release\teste.exe c:\MAPt\teste\main.cpp pause Je mets un exemple pour comprendre ce qui se passe: - Spoiler:
fichier addition.h: - Code:
-
#ifndef ADDITION_H_INCLUDED #define ADDITION_H_INCLUDED
/* Fonction qui ajoute 2 au nombre reçu en argument * - nomRecu : Le nombre auquel la fonction ajoute 2 * Valeur retournée : nombreRecu + 2 */ int ajouteDeux(int nombreRecu);
#endif // ADDITION_H_INCLUDED fichier addition.cpp - Code:
-
#include "addition.h"
int ajouteDeux(int nombreRecu) { int valeur(nombreRecu + 2);
return valeur; }
fichier main.cpp - Code:
-
#include <iostream> #include "addition.h" using namespace std;
int main() { int a(2),b(2); cout << "valeur de a : " << a << endl; cout << "valeur de b : " << b << endl; b = ajouteDeux(a); cout << "valeur de a : " << a << endl; cout << "valeur de b : " << b << endl;
string stop; cin >> stop ;
return 0; }
et voici la génération de l'erreur de la console: - Spoiler:
Je vous remercie par avance de bien vouloir apporter attention à mon problème. J'ai déjà envoyé sur un autre site, mais j'ai pas la solution. @+
Dernière édition par centkestion le Ven 26 Avr 2013 - 23:51, édité 1 fois |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 1:53 | |
| Tu as oublié d'implémenter ta fonction ajouteDeux ?
J'ai raté un spoiler. Il faut compiler chaque fichier source !
_________________ Home is not a place, it's a feeling.
|
|
| |
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 9:04 | |
| Bonjour, merci pour ton intervention. - Citation :
- Il faut compiler chaque fichier source !
Ca veut dire quoi ? Il faut mettre tous chemins dans le fichier bat, car individuellement compiler chaque fichier ça ne marche pas. Salutation! |
|
| |
onilink_ Modérateur
Messages : 9178 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 10:11 | |
| Bah tu compile addition. cpp: g++ addition.cpp -c Et ensuite le main.cpp en linkant tout: g++ main.cpp -o out.exe addition.o Les undefined reference c'est toujours des problèmes de link |
|
| |
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 12:57 | |
| Merci Onilink. Bien, je ferais l'essais ce soir. Là je reviens du bois, et j'y retourne tout à l'heure pour faire mon bois de chauffage. Merci, j'espère que cela va marcher! |
|
| |
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 19:38 | |
| J'ai essayé, mais je n'y arrive pas. Déjà il faudrait savoir si le chemin du dossier où sont placés les fichiers: addition.cpp, addition.h, main.cpp, on ne peut pas l'imposer dès le départ. Voici le dernier fichier .bat: - Code:
-
@echo. @echo Setting up environment for using MinGW with gcc from %~dp0. @set PATH=%~dp0bin;%PATH%
g++ c:\MAPt\teste\addition.cpp -c g++ -o c:\MAPt\teste\bin\Release\.exe c:\MAPt\teste\main.cpp
Comment faudrait-il faire ? Voila autre chose, on m'appelle. @+ |
|
| |
onilink_ Modérateur
Messages : 9178 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 19:49 | |
| Bah si ton .bat est dans le même dossier que tes sources t'as pas besoin de mettre des chemins absolus. Sinon c'est quoi qui marche pas?
|
|
| |
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 22:05 | |
| Me voila bien embarrassé. Ça ne marche du tout. Suite à ta remarque, j'ai mis le fichier .bat dans le même dossier que les sources. Avant il était dans le même dossier que le compilateur. Maintenant il ne reconnait plus celui-ci. g++ est dans le dossier: "c:\compilateur\CodeBlocks\MinGW\bin\" les fichiers sont dans: "c:\MAPt\teste\" . (MAPt pour mise au point) Le message d'erreur maintenant est avec cette modification: - Code:
-
@echo. @echo Setting up environment for using MinGW with gcc from %~dp0. @set PATH=%~dp0bin;%PATH% g++ -o c:\MAPt\teste\bin\Release\teste.exe c:\MAPt\teste\main.cpp pause Je ne me rappelle plus où j'avais eu ce code, que j'avais défini en rapport avec mon environnement. Si tu pouvais me l'écrire tel qu'il devrait être, ce serait formidable. Car là je n'y comprend pas grand chose, et je ne voudrais pas abuser continuellement à déranger les membres de ce forum pour mes petits problèmes. Merci encore à toi de participer. Edit: en regardant le code, je vois que l'exe est dans release (c'est avec code::Blocks), mais moi ça ne me dérange pas qu'il soit ailleurs. avec les autres fichiers, si l'on veut. Ce n'est pas important. |
|
| |
onilink_ Modérateur
Messages : 9178 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 23:11 | |
| Il faut que tu mette le chemin de g++ dans le path pour qu'il soit reconnu par l'invité de commande (donc les .bat). (clic droit sur Poste de travail -> propriétés -> avancé -> variables d'environnement -> tu ajoute dans le path)
Sinon tu peut appeler g++ avec un chemin absolut: c:\mon\chemin\bin\g++.exe
|
|
| |
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mar 23 Avr 2013 - 23:57 | |
| Ah merci beaucoup onilink_ Tu m'as été d'un grand secours. J'ai remis mon fichier .bat avec le compilateur, autrement je n'arrivais pas à le faire reconnaitre. Voici ce qui a marché: - Code:
-
@echo. @echo Setting up environment for using MinGW with gcc from %~dp0. @set PATH=%~dp0bin;%PATH%
g++ c:\MAPt\teste\addition.cpp -c g++ c:\MAPt\teste\main.cpp -o c:\MAPt\teste\out.exe addition.o
pause Pour ce qui est des trois premières lignes, je ne comprend rien du tout. Et là où je me pose des question, ce sera lorsque j'installerais je ne sais plus QT, ou autre. J'ignore ce qu'il faudra faire. En tout cas merci. Voici un forum qui marche. J'avais posé la question sur un autre forum, mais là ils ont bus une potion qui les a endormis. Maintenant que je sais que le forum fonctionne, j'y viendrais jeter un oeil régulièrement. Je sais que sur centkestion, il m'en reste 99, mais je vais tout faire pour ne pas en abuser. Il est évident qu'il me sera difficile d'intervenir, alors que je suis novice. |
|
| |
onilink_ Modérateur
Messages : 9178 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mer 24 Avr 2013 - 0:14 | |
| :b
Sinon, je me demandais, pourquoi compiler en ligne de commande et pas avec un IDE?
Pour ce qui est de Qt si tu l'utilise par contre ça devrais être beaucoup plus simple, car il a un invité de commande spécial ou le compilo est par défaut reconnus. |
|
| |
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mer 24 Avr 2013 - 0:39 | |
| - onilink_ a écrit:
- Sinon, je me demandais, pourquoi compiler en ligne de commande et pas avec un IDE?
Pourquoi?. J'ai commencé pour voir. Mais il est important de retrouver rapidement ce qu'on apprend. Un écran avec le tuto du siteduzéro, celui de codeBloks, un autre programme, cela fait beaucoup. De plus on a tendance à faire du copier/coller (quoique beaucoup d'espaces sont remplacé par chr(160) je crois, ce qui provoque des erreurs). J'avais fait un programme pour remettre les espaces normaux, mais je me suis aperçu au bout d'un moment, que j'oubliais bien des choses. J'ai donc fait un programme (basic Panoramic) avec une série de memo, de combo, etc, où les mots clés sont répertoriés, pour etre retrouvé. Des liens, comme celui de la page htlm du tuto, pour chaque leçon. Des mémos de comparaison, et pour chaque page du site, je peux faire 9 programmes différents, pour suivre le tuto. J'y ai mis un bouton pour compilé, quoique celui-là, j'ai du faire un script en Autoit pour qu'il clique sur un icône de raccourcis du fichier bat, j'ai j'ai pas réussi à le lancer par une commande (execute). puis le bouton pour lancer le programme compilé. Taper les sources à la main, c'est rajouté la mémoire des mains, et des essais, et c'est beaucoup plus efficace. De cette façon je comprend mieux les difficultés et je peux y rajouter des commentaires que je peux comprendre. Comme sur chaque memo, il y a une un évennement onchage, tout est enregistré à la dernière sauce. Voila le pourquoi. Je ne ressors le CodeBlocks que lorsqu'il y a un problème que je ne comprends, comme cela a été le cas pour le problème que j'ai posé. Encore que ce problème était plus grave au départ, car même CodeBlock avait le même problème que le sujet traité. J'ai du le réinstaller pour qu'il re-fonctionne normalement. Vu l'heure, je crois qu'il est tant du dodo! Demain, j'ai encore du travail fatigant à faire. |
|
| |
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mer 24 Avr 2013 - 8:49 | |
| Bonjour, Pour en finir avec ce sujet. Comment on fait si on a plusieurs 'link' à faire. Je n'ai pas d'exemple pour l'instant pour voir. Dans ces lignes: - Code:
-
g++ c:\MAPt\teste\addition.cpp -c g++ c:\MAPt\teste\main.cpp -o c:\MAPt\teste\out.exe addition.o je suppose en prenant comme exemple multiplication, division, on aurait: - Code:
-
g++ c:\MAPt\teste\addition.cpp -c g++ c:\MAPt\teste\multiplication.cpp -c g++ c:\MAPt\teste\division.cpp -c et quelque chose comme: - Code:
-
g++ c:\MAPt\teste\main.cpp -o c:\MAPt\teste\out.exe addition.o multiplication.o division.o Est-ce valable? Maintenant je suis obligé de partir, donc à ce soir.! |
|
| |
onilink_ Modérateur
Messages : 9178 Localisation : Montpellier Projet Actuel : Planet Centauri
OniDev
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mer 24 Avr 2013 - 10:25 | |
| Ouaip c'est bien comme ça que ça marche :b
|
|
| |
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Mer 24 Avr 2013 - 16:21 | |
| Merci. J'essayerai de pondre cela ce soir. Il faut aussi que j'adapte mon programme avec cette possibilité. |
|
| |
centkestion Débutant
Messages : 13 Localisation : Haute Saône
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] Ven 26 Avr 2013 - 23:51 | |
| Bonsoir, Bon je me dois de rendre la politesse. J'ai pas eu beaucoup de temps ces jours-ci, mais j'ai pu tester cette dernière possibilité: avoir plusieurs fonctions à lire en même temps avec un fichier .bat. ça marche ! J'ai pris le temps de modifier mon programme, qui me fait en un clic le fichier .h, il ne reste plus qu'à y mettre le prototype. En envoyant le fichier main à la compile, tous les fichiers sont lus et recopié dans le dossier. Le fichier est généré sans problème. C'est presque plus facile qu'avec CodeBlocks. Pour moi ce problème est résolu, et je vais voir pour le déclarer ainsi. Merci à vous! Question: Vous n'avez pas la tête qui tourne ? |
|
| |
Contenu sponsorisé
| Sujet: Re: C++: fichier bat pour lancer le compilateur[résolu] | |
| |
|
| |
| C++: fichier bat pour lancer le compilateur[résolu] | |
|