IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

ilink32: out of memory


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut ilink32: out of memory
    Bonjour à tous,

    Je suis désespéré, je n'arrive plus à linker mon projet en statique (il est vrai qu'il est passablement gros: environ 30-35Mb): ilink32.exe me retourne une erreur "out of memory" et je dois livrer mon projet demain :-(

    J'ai essayé ulink.exe avec bcc32pch mais j'ai également des erreurs.

    J'ai vu sur le web que d'autres personnes avaient eu le même problème et avaient reçu une version de ilink32.exe étendue, mais je ne sais pas à qui m'adresser chez Embarcadero pour cela (j'utilise RAD Studio 2007 Entreprise et j'ai acheté un update vers 2010 mais mon projet ne compile pas encore sur cette version).

    Est-ce que quelqu'un pourrait me donner une piste ou m'indiquer comment contacter Embarcadero pour avoir de l'aide (quitte à payer)?

    Merci par avance
    Patrick

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Hello,

    Qu'est-ce que tu as comme version de ilink32.exe ? Ici, pour 2007, j'ai une 5.81.0.1.
    J'imagine que tu as essayé en cochant "Use IDE linker" dans bcc32pch ? (pour info ici version 3.0dev3)

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    Bonjour totoche76,

    J'ai la version 5.80.0.2 d'ilink32. J'ai aussi essayé avec la version 2010 avec la même erreur, alors je ne pense pas pouvoir résoudre mon problème sur ce point (et je m'inquiète même pour ma migration à venir).

    Concernant bcc32pch, j'ai téléchargé la version 2.79 qui est la dernière en ligne. L'option "Use IDE linker" est désactivée dans cette version, mais j'ai essayé d'activer "Disable compiler replacement for this project" au niveau du projet. ( en fait je n'arrive rien à linker avec ulink dès que j'inclus un de mes package ).

    L'auteur indique que le développement du projet est suspendu et je n'ai pas trouvé la version 3.0dev3 dont tu parles. Aurais-tu un lien à me proposer?

    Merci

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Je t'ai envoyé un mail sur l'adresse trouvée sur ton site.

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    Bonjour à tous,

    Merci totoche76 pour ton aide même s'il s'est avéré que mon problème n'était pas lié à bcc32pch. J'ai envoyé un mail à l'auteur de ulink.exe et il m'a corrigé le ulink.cfg que j'utilisais. J'arrive maintenant à linker mon projet depuis la ligne de commande mais toujours pas depuis bcc32pch. Selon lui c'est parce que j'ai des déclarations croisées de mes units (comme "#pragma link" et dans la liste des .obj).

    Pour information, voici mon ulink.cfg corrigé et l'explication pas à pas de comment j'utilise ulink en ligne de commande:

    ulink.cfg
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    -L"C:\CodeGear\RAD Studio\5.0\Lib";"C:\CodeGear\RAD Studio\5.0\Lib\Obj";"C:\CodeGear\RAD Studio\5.0\Lib\Release";"C:\CodeGear\RAD Studio\5.0\Lib\psdk"
    -zimport32
    -zrtl;vcl;vclx
    -F -Gw -Ge -Gr
    Procédure pas à pas pour compiler et linker mon projet en ligne de commande:

    0) Installer ulink
    0.1) Télécharger le fichier ulnb0XXX.zip depuis ftp://ftp.styx.cabel.net/pub/UniLink/ (j'ai utilisé "ulnb0109.zip")
    0.2) Le décompresser et copier "ulink.exe" dans le répertoire "bin" de RAD Studio 2007
    0.3) Préparer le fichier de configuration "ulink.cfg" (j'ai recopié le fichier "samples.cfg\ulink.bds" et l'ai renommé "ulink.cfg")
    0.4) Changer les options si nécessaires (dans mon fichier: "-zimport32 -zrtl;vcl;vclx -F -Gw -Ge -Gr")

    1) Pour obtenir la ligne de commande du linker:
    1.1) Ouvrir la ligne de commande de RAD Studio (ou exécuter le batch dans C:\CodeGear\RAD Studio\5.0\bin\rsvars.bat)
    1.2) Aller dans le répertoire du projet à linker
    1.3) msbuild /t:Build /p:config=Release /nologo myProject.cbproj >msbuild.log
    ou msbuild /t:Make /p:config=Release /nologo myProject.cbproj >msbuild.log
    1.4) Ouvrir le fichier "msbuild.log" et trouver la ligne qui appelle "ilink32.exe" et la recopier (avec tous ses paramètres)

    2) Linker le programme avec ulink.exe (à la place de ilink32.exe)
    2.1) Enlever l'appel à "ilink32.exe" dans la ligne de commande et la sauver dans un fichier (p.ex. link_cmd.rsp)
    2.2) Ouvrir une fenêtre DOS et se mettre dans le répertoire du projet
    2.3) ulink.exe @link_cmd.rsp

    Le programme est correctement linké :-)

    Note: j'ai dû reconstruire le fichier de ressources "VirtualTrees.res" (v4.8.6) car il faisait une erreur au link (fichier invalide). Pour cela j'ai téléchargé le programme "http://www.resource-builder.com/", ai ouvert le fichier et l'ai sauvé sous un autre nom...

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    J'ai fait un petit batch qui gère tout seul le Build, l'extraction des paramètres de la ligne de commande et l'appel de ulink.

    1) Créer un projet de type console (un programme qui repère la ligne du "ilink32.exe") et coller le code suivant dedans:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    //---------------------------------------------------------------------------
    #include <fstream>
    #include <iostream>
    using namespace std;
    #pragma hdrstop
     
    //---------------------------------------------------------------------------
    const int bufferSize=100000;
    //---------------------------------------------------------------------------
    #pragma argsused
    int main(int argc, char* argv[])
    {
     
      // Check parameters
      if (argc<3) {
        cout<<"Syntax: "<<argv[0]<<" msbuild_log_file commandline_to_find_and_remove"
            <<endl;
        exit(0);
      }
     
      // Open the source file
      ifstream in(argv[1]);
      if (!in) {
        cerr<<"Invalid input file: "<<argv[1]<<endl;
        exit(1);
      }
     
      char* buffer=new char[bufferSize];
      if (buffer==NULL) {
        cerr<<"Can't reserve memory for line buffer"<<endl;
        in.close();
        exit(1);
      }
     
      // Parse file
      while (in.getline(buffer,bufferSize,'\n')) {
        // Does the line contain the required keyword
        char* found=strstr(buffer,argv[2]);
        if (found) {
          found+=strlen(argv[2]);
          cout<<found<<endl;
        }
      }
     
      // Done
      delete[] buffer;
      in.close();
     
      return 0;
     
    }
    //---------------------------------------------------------------------------
    Le compiler pour créer un exécutable que j'ai appelé "CommandLineBuild.exe"

    2) Utiliser le batch suivant en remplaçant les noms des répertoires selon votre installation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if "%FrameworkVersion%"=="" "C:\CodeGear\RAD Studio\5.0\bin\rsvars.bat"
    msbuild /t:Make /p:config=Debug /nologo myProject.cbproj >_msbuild.log
    CommandLineBuild.exe _msbuild.log ilink32.exe >_ulink_input.txt
    ulink.exe @_ulink_input.txt
    Vous pouvez changer le "Make" en "Build" pour forcer la compilation du projet et "Debug" en "Release" (dans la version anglaise, je ne sais pas quels sont les noms par défaut des configurations dans la version française).

    Si le batch n'est pas appelé depuis la ligne de commande de RAD Strudio, le premier appel du batch initialise les chemins (première ligne). Ensuite il compile et link le projet

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XStream][String]out of memory
    Par Invité dans le forum Persistance des données
    Réponses: 8
    Dernier message: 10/01/2006, 14h52
  2. [C++] [gcc] out of memory
    Par fxp17 dans le forum GCC
    Réponses: 5
    Dernier message: 06/01/2006, 10h29
  3. [pb mémoire] out of memory d'eclipse
    Par Casp dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 12/05/2005, 16h39
  4. Out of memory
    Par shurato dans le forum ANT
    Réponses: 1
    Dernier message: 10/11/2004, 16h19
  5. [JBuilder 8] Out of memory problem ...
    Par keros dans le forum JBuilder
    Réponses: 2
    Dernier message: 08/09/2003, 19h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo