J'ai un grand projet C ++ construit avec libtool. Le problème est que Eclipse n'exécutera pas de script généré libtoure et je reçois un "programme n'est pas un exécutable reconnu". Message d'erreur. Comment puis-je utiliser Eclipse Debugger? J'utilise actuellement KDevop3 comme éditeur et débogage avec Insight .. qui est horrible. P>
Je pourrais peut-être exécuter l'exécutable actuel, c'est-à-dire dans le ./libs du répertoire de projet, mais je devrais ensuite définir manuellement ld_library_path et trucs comme ça ... Il doit y avoir un meilleur moyen de cela. p>
Toute aide serait appréciée! P>
5 Réponses :
Vous devez convaincre Eclipse de démarrer GDB comme ceci: voir https://www.gnu.org/s/libtool/manual/html_node/debugging-executables.html P> p>
Oui, bien sûr, mais comment? Iv'e a essayé beaucoup de choses, y compris la modification de la ligne de commande de débogueur, mais en vain.
Je pense que l'on pourrait écrire un petit programme d'emballage pour interposer un exécutif de 'sh libtool - Mode exécuté "pour exécuter GDB. Appelez-le 'gdb-libtool' et invoquez cela au lieu de GDB. P>
Je me développe sous Windows et Linux, donc c'est quelque chose dont j'ai besoin pour moi-même. P>
Il y a quelques morceaux difficiles, comme obtenir les chemins directement sur la libtoure et l'invocation de GDB. Off Pour prendre une swat à cela. P>
Cheer, Jerry. P>
Nope: Erreur lors de la création de session ne peut pas exécuter le programme "gdb-libtool": Inconnu Raison - Code>
Exécution d'un script au lieu d'un exécutable est toujours non pris en charge dans Eclipse, voir Ce bug . Jusqu'à ce que la fonctionnalité soit introduite, vous ne pouvez pas déboguer un projet compatible LibTool sous Eclipse, à moins que vous ne conservent quelque chose comme une configuration distincte , en s'appuyant sur une liaison statique uniquement à des fins de débogage. P> Pour faire ça, vous P> Ouvrir Sélectionnez (éventuellement) Créez une nouvelle configuration de construction avec un sous
Projet | Propriétés CODE> Dans le menu supérieur P> LI>
AutoTools | Configurez les paramètres CODE> dans le menu de gauche de la fenêtre P> LI>
C / C ++ Build | Paramètres de constructeur | Emplacement de construction CODE> P> LI>
configure | avancé code>, remplissez "Options de ligne de commande supplémentaires" avec
- Désactiver-partagé p> p> l>
ol> p>
Merci, mais je devrais toujours spécifier les chemins aux bibliothèques moi-même, n'est-ce pas?
Non, vous ne voudriez pas, puisqu'ils sont statistiques liés. Il existe d'autres inconvénients, bien sûr: chaque fois que vous modifiez la bibliothèque, vous devez recompiler les exécutables; De plus, les exécutables sont assez ballonnés.
Défaite l'un des objectifs d'avoir libtoure en premier lieu. +1 pour une solution de travail cependant.
Pour le premier point, vous pouvez désactiver le script intermédiaire libtool en ajoutant Pour le deuxième point, vous devrez définir et exporter votre -NO-INSTALL code> à
ldflags code> dans votre
Makefile.am code> ou vous peut simplement exécuter
faire installer code> et déboguer à partir d'un binaire installé. p>
ld_library_path code> avant em> lancement Eclipse. P>
Vous pouvez le contourner en exécutant l'exécutable actuel au lieu du script libtool. L'exécutable sera généralement trouvé dans Allez à l'onglet Environnement de votre configuration de débogage et faites une nouvelle variable d'environnement appelée .libs / code>. Donc, dans votre configuration de débogage sur l'onglet principal définit la valeur de l'application
C / C ++ code> à quelque chose comme
.libs / my_aplication code>. Ensuite, tout ce dont vous aurez besoin de nous faire mettre à jour
ld_library_path code> dans votre configuration de débogage. P>
ld_library_path code>. Vous voudrez ajouter le répertoire
.libs code> sur le chemin. Donc, la valeur devrait ressembler à ceci:
$ {project_loc} /. Libs: $ ld_library_path code> en supposant que votre dossier
.Libs code> est juste à l'intérieur du répertoire de projet. P>
MISE À JOUR: Eh bien, éventuellement, je sqw aucune autre option, mais en définissant toutes les variables d'environnement moi-même (ld_library_path et telle) manuellement. Ceci est bien sûr une mauvaise pratique car ceux-ci peuvent changer finalement, mais je n'ai trouvé aucun autre moyen ..