Partage
  • Partager sur Facebook
  • Partager sur Twitter

Appel de MinGW qui ne fonctionne pas

pour compiler Qt a l'aide d'un de mes programmes

Anonyme
    8 octobre 2007 à 20:51:40

    Bonjour, j'ai créé une ébauche de programme pour pouvoir compiler avec Qt plus facilement, en passant simplement mon fichier .pro a un programme.

    Mon problème, c'est que qmake fonctionne bien, mais lorsque je fait system("make"); pour appeller MinGW et qu'il fasse son travaille, le console me dit que mingw32-make n'est pas reconnu et blabla bla....

    Comme si ca ne fonctionnait pas, alors que le qmake juste avant avait bien marcher!

    Par contre cette fonctionalité marche correctement lorsque je passe par un shell, ou part le lanceur de Code::blocks.

    Je pense donc que le problème est dans le fait que lorsque j'utilise make, la variable path, pourtant initialisé a changer et ne reconnait plus cette commande!
    Pouvez vous donc me dire si vous savez, comment régler ce problème.


    Voici le code de mon programme, si ca vous interesse :
    1. #include <iostream>
    2. #include <string>
    3. using namespace std;
    4. string valid4console(string);
    5. int main(int argc, char *argv[])
    6. {
    7.     //on initialise la variable PATH correctement pour cette session
    8.     system("qtvars.bat");
    9.     //rafraichissement de la console
    10.     system("cls");
    11.     //un jolie titre
    12.     system("title EasyBuilt_Qt 1.0");
    13.     system("color f0");//noir sur blanc c'est mieux non?
    14.         cout << "\n\t\t\t----------------------" << endl;
    15.         cout << "\n\t\t\t---EasyBuilt_Qt 1.0---" << endl;
    16.         cout << "\n\t\t\t----------------------\n\n\n" << endl;
    17.     if(argc > 1)
    18.     {
    19.         string file = argv[1];
    20.         string repertoire = file.substr(0, file.find_last_of("\\"));
    21.         string extension = file.substr(file.find_last_of("."), file.length());
    22.         if(extension != ".pro" && extension != ".PRO")
    23.         {
    24.             cout << "Le type de fichier donne en argument est incorrect." << endl;
    25.             system("pause");
    26.             return EXIT_FAILURE;
    27.         }
    28.         cout << "\n\nEtat : \n" << endl;
    29.         string building = "qmake -o Makefile " + valid4console(file);
    30.         system(building.c_str());//appel a qmake
    31.         system("make");//puis au compilo
    32.         //repassé le focus a la fenetre d'appel
    33.         /*string open_folder = "explorer " + repertoire;
    34.         system(open_folder.c_str());*/
    35.         //ou alors, on dit que c'est terminé
    36.         cout << "\n\nTerminee..." << endl;
    37.         system("pause");
    38.         return EXIT_SUCCESS;
    39.     }
    40.     cout << "Entrez le chemin complet du repertoire de votre fichier .PRO." << endl;
    41.     string way;
    42.     getline(cin, way);
    43.     int end_way = way.length() - 1;
    44.     if(way.at(end_way) != '\\' && way.at(end_way) != '/')
    45.     {
    46.         way += '/';
    47.     }
    48.     cout << "\n" << endl;
    49.     cout << "Entrez le nom de votre fichier .PRO." << endl;
    50.     string file_pro;
    51.     getline(cin, file_pro);
    52.     if(file_pro.length() > 5)
    53.     {
    54.         int end_file_pro = file_pro.length() - 1;
    55.         int last_file_pro = file_pro.length() - 4;
    56.         string extension = file_pro.substr(last_file_pro, end_file_pro);
    57.         if(extension != ".pro")
    58.         {
    59.             file_pro += ".pro";
    60.         }
    61.     }
    62.     else
    63.     {
    64.         file_pro += ".pro";
    65.     }
    66.     cout << "\n\nEtat : \n" << endl;
    67.     string file = way + file_pro;
    68.     string building = "qmake -o Makefile " + valid4console(file);
    69.     system(building.c_str());//je fait appelle a qmake
    70.     system("make");//puis au compilo
    71.     cout << "\n\nTerminee" << endl;
    72.     system("pause");
    73.     return EXIT_SUCCESS;
    74. }
    75. string valid4console(string in)
    76. {
    77.     string retour = "\"" + in + "\"";
    78.     return retour;
    79. }

    (je develloperai un générateur de fichier .pro ensuite, et encore apèrs je ferai ca dans une fenêtre)


    Merci d'avance!
    • Partager sur Facebook
    • Partager sur Twitter

    Appel de MinGW qui ne fonctionne pas

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown