GoGPT Best VPN GoSearch

Icône de favori OnWorks

mppg - En ligne dans le Cloud

Exécutez mppg dans le fournisseur d'hébergement gratuit OnWorks sur Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

Il s'agit de la commande mppg qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS

PROGRAMME:

Nom


makeppgraph -- Analyse graphique du graphe de dépendance

DESCRIPTION


?: - ?, A: -UNE,
--args-fichier,
--fichier-arguments, B: -b,
--car,
--build-raisons, C: &cwd, D: -RÉ,
-ré,
--dépendances,
&rép,
--point,
--vers le bas,
--vers le bas, G: -g,
--graphviz, H: -h,
--aider,
&domicile,
--html, I: -JE,
-je,
--comprendre,
--include-dir,
--comprend, L: -l,
--Journal,
--fichier journal, M: -M,
-m,
&makepp,
$MAKEPPGRAPHFLAGS,
--fusionner,
--module, O: -o,
--sortir, P: -p,
--plaine, R: -r,
--Renommer, S: -Oui,
--directions-séparées,
&suf, T: -t,
--texte, U: -tu,
--en haut,
--vers le haut,
&usr, V: -V,
--version

makeppgraph [ option ... ] [ modèle ...]

mppg [ option ... ] [ modèle ...]

On dit "Une image vaut mille mots". Alors dessinons votre dépendance ou incluons
graphique sous différents angles. Consultez la galerie
<http://makepp.sourceforge.net/gallery/> pour avoir des idées de ce que vous pouvez faire.

Chaque nœud représente un fichier source ou une cible, coloré selon les modèles de nom de fichier.
Le nœud d'un fichier est rectangulaire. Le nœud d'une cible bidon est ovale. Chaque bord solide représente
une dépendance directe. Alternativement ou en plus, vous pouvez afficher les relations d'inclusion comme
pointillés. Pour une vue textuelle plus détaillée mais pas si jolie, voir makepplog.

Mais attention, même pour une petite construction, la complexité peut être ahurissante ! C'est parce qu'avec
.o fichiers et le système comprend, vous avez facilement deux fois plus de nœuds que de fichiers source. Mais
ce n'est rien - le nombre d'arêtes dépasse souvent de loin celui de nœuds, en raison de plusieurs
inclure des déclarations. Un aménagement sans croisement est généralement impossible.

Dans les projets réels, la complexité devient insensée. Techniques telles que la source basée sur un modèle
génération de fichiers, préprocesseurs (par exemple Embedded SQL, langages de définition d'interface, Qt
bibliothèque) ou la publication de fichiers dans des répertoires centraux (par exemple pour n'avoir qu'un seul "-I" ou "-L"
option) faire exploser le graphique. Même si les bords ne font qu'un pixel de large, vous vous retrouvez avec
larges rayures noires aux bords croisés.

Une fois que vous aurez compris ce qui se passe réellement, si vous êtes chanceux, vous pourrez peut-être trouver un moyen de
simplifier votre configuration de construction. Mais avant d'y arriver, vous devez réduire drastiquement le
quantité d'informations que vous affichez. À cette fin, il existe diverses sélections, renommer et
fusion des possibilités dans "makeppgraph". Lorsque vous ne parvenez pas à trouver un équilibre entre
réduire le graphique jusqu'à ce qu'il devienne raisonnablement affichable, tout en montrant toujours ce
vous voulez voir, vous pouvez revenir à un graphique textuel.

SORTIE FORMATS


La mise en page, l'affichage et la manipulation de graphiques sont des tâches complexes, qui dépassent le cadre de
"makeppgraph". Au lieu de cela, il produit des fichiers d'entrée pour des outils spécialisés. Il crée un
fichier de sortie remplaçant ou ajoutant le suffixe approprié à son premier fichier d'entrée. Si ce
is .makepp/log, la valeur par défaut, le fichier de sortie ignorera le .makepp répertoire, menant à
log.udg. Si la première entrée est - (stdin), la sortie va à stdout.

uDessiner(Graphique)
Avec uDraw (Graphique)http://www.informatik.uni-bremen.de/uDrawGraph/> vous obtenez un assez
GUI moderne, qui permet de sélectionner les parents ou les enfants, de trouver l'autre extrémité d'un bord, ou
masquer les sous-graphes. Ajuster les options telles que les distances des nœuds et utiliser des splines pour les arêtes
peut rendre le graphique plus joli.

Bien que les caractéristiques ci-dessus en fassent un outil extrêmement utile, il existe quelques petites
attelages :

· Il est assez gourmand en mémoire, de sorte qu'après une longue méditation, il peut s'écraser sans
avoir affiché quoi que ce soit - un signe clair que vous devez réduire le nombre de nœuds
et/ou des bords plus loin.

· Il sépare fortement les attributs de graphique et les options d'affichage. Cela signifie que vous ne pouvez pas
mettre dans un graphe généré le fait qu'il doit être orienté latéralement (ce qui est
généralement nécessaire ici car, même lorsqu'ils sont renommés en quelque chose de court, les noms de fichiers sont
beaucoup plus large que haut). Comme solution de contournement, si vous ne voulez pas en faire votre valeur par défaut, ou
choisissez l'orientation dans le menu à chaque fois, ils proposent un petit script de démarrage :

exporter UDG_HOME=/where/ever/uDrawGraph-3.1
TMP=`mktemp -t udg.XXXXXX` || sortie 1
trap "rm -f $TMP" SORTIE
echo "[menu(file(open_graph(\"${1-log.udg}\"))),menu(layout(orientation(left_right)))]" >$TMP
$UDG_HOME/bin/uDrawGraph -init $TMP

· Il ne prend pas encore en charge les couleurs de bordure de nœud. En raison de cela, "--because" s'affiche en double
bordures alors qu'elles devraient être rouges.

· Lors de la fusion de plusieurs fichiers en un seul nœud, cela entraîne des auto-bords à la fois avec
"--dependencies" et "--includes", un seul d'entre eux s'affichera aléatoirement
pointillés ou dessinés et avec une étiquette de "2*".

Graphviz
Graphvizhttp://www.graphviz.org/> se compose de plusieurs outils en ligne de commande, qui permettent
beaucoup plus de formats d'exportation que uDraw (Graph). Cela inclut non seulement les formats d'image statiques
mais aussi des entrées pour des programmes de conception comme dia. Il existe un utilitaire "twopi" pour créer un
disposition radiale, ce qui est bien si votre graphique se rapproche d'un véritable arbre, c'est-à-dire votre
les dépendances se déploient, mais peu de nœuds ont des dépendances communes avec d'autres. Il y a un peu
visionneuses disponibles, dont aucune ne vous aide à naviguer le long de la structure du graphique :

toqué
Son propre outil d'affichage, dotty, a l'avantage sur uDraw(Graph) que vous pouvez librement
faites glisser les nœuds, sans être limité au niveau assigné par la mise en page. Lorsque
votre écran est plein de bords, faire glisser un nœud vous donne une bonne idée de l'endroit où
les bords de ce nœud mènent à. Mais il perd également des informations lorsque vous le modifiez.
En dehors de cela, il s'agit d'un outil Xlib obsolète. Il affiche également un peu ennuyeux
cercle au milieu de chaque bord, et aucune option ne semble s'en débarrasser.

Visionneur ZGR
ZGRViewerhttp://zvtm.sourceforge.net/zgrviewer.html> est un téléchargeable séparément
Visionneuse Java qui permet un zoom et un panoramique confortables. Le graphique est uniquement visible, non
déplacement des nœuds. Il y a cinq boutons dans la zone d'affichage, qui offrent des
variations de zoom semi-3D fantaisistes, mais, contrairement aux fonctionnalités de base, elles peuvent être
extrêmement lent selon votre configuration Java. Pour mon Sun Linux Java, ce qui suit
a donné un énorme coup de pouce :

export J2D_PIXMAPS=partagé USE_DGA_PIXMAPS=1

Grappa
Grappa est une visionneuse Java 1.2 téléchargeable séparément. Il n'y a pas de coque d'emballage
script, le jar ne contient aucun manifeste, aucune des sources ne contient de fonction principale, et
avec l'appletviewer, il a produit deux hautes fenêtres qui s'accrochent avec une "applet de démarrage"
message, donc je ne sais pas comment tester cela. Il peut être essayé sur un site Web de démonstration en tant que
applet.

La sélection d'un bord le rend rouge vif, vous pouvez donc faire défiler manuellement son autre extrémité dans
vue sans la perdre de vue. Autre que cela et zoom et suppression de nœuds
il semble n'avoir aucune fonctionnalité utile. Il ignore la couleur hexadécimale valide
cahier des charges.

SVG SVG, l'un des types de fichiers vers lesquels les backends peuvent exporter, est déjà assez ancien. Mais quelques
les navigateurs ont toujours des problèmes avec cela. Lors de l'intégration avec une balise d'objet uniquement Opera
le redimensionne, d'autres le coupent, ce qui est inutile pour une vignette. Lorsqu'il est considéré comme un
document qui lui est propre, seuls Opera et Konqueror permettent de le mettre à l'échelle, tandis que Firefox s'adapte
seulement les étiquettes. Même si les étiquettes sont du texte, aucun navigateur ne peut les rechercher.
IE6 n'en a aucune idée, à moins que vous n'installiez un plugin. Une application dédiée, comme
Inkscape, peut mieux vous servir.

HTML
Il s'agit d'un simple format d'arborescence de liste non ordonnée qui peut être consulté avec n'importe quel navigateur. Tu
devrait avoir JavaScript et CSS, ce qui permet de plier des sous-arbres et de voir les couleurs. D'habitude
votre graphique ne sera pas un arbre, qui est contourné en répétant des nœuds dans chaque sous-arbre
nécessaire, mais comme un lien vers la première occurrence où vous pouvez voir tous ses attributs. Dû
à la prise en charge limitée d'Unicode d'IE, les flèches verticales sont utilisées pour les relations d'inclusion, à la place
des flèches pointillées habituelles.

Textuel Graphique
Il s'agit d'un format simple basé sur l'indentation qui peut être consulté avec n'importe quelle visionneuse de texte. Cette
signifie que vous pouvez généralement étudier des graphiques beaucoup plus gros qu'avec les autres formats. Dans Emacs vous
peut utiliser le contour et le dépliant pour une navigation graphique très puissante avec ce petit wrapper
mode:

(define-derived-mode textgraph-mode outline-mode "Graph"
(mode d'affichage)
(définir (make-local-variable 'outline-regexp) " *.")
(set (make-local-variable 'outline-level)
(lambda () (/ (- (match-end 0) (match-begining 0) -1) 2)))
(set (make-local-variable 'outline-font-lock-keywords)
'(("^ *\\(?:{[az,]+} \\)?\\([^{\n]+\\)" (1 (outline-font-lock-face) nil t) )))
(setq imenu-expression-générique
'((nil "^ *\\(?:{[az,]+} \\)?\\(.+?\\)\\(?:{[az,]+}\\)?$" 1))))

Les lignes peuvent avoir des annotations séparées par des virgules entre les accolades, à moins que vous ne donniez également le
Option "-p, --plain". Lorsque ceux-ci viennent avant la cible, ils se rapportent à la relation
avec le parent, c'est-à-dire la ligne précédente moins indentée. Quand ils viennent après la cible,
ils se rapportent à la cible elle-même. Ils sont les suivants :

car
Quand cela vient avant une cible, le parent a été construit à cause de celle-ci. Quand cela
vient après, la cible avait une raison inhérente d'être reconstruite.

bidirectionnel
Cette dépendance ou inclusion va dans les deux sens.

comprennent
Le parent inclut ce fichier. Cette annotation n'est donnée que lorsque l'on montre également
dépendances.

faux
C'est une cible bidon.

répété
L'information sur cette cible et ses enfants a déjà été donnée plus tôt.

OPTIONS


Si vous ne donnez aucun modèle, makeppgraph commencera à fonctionner avec tous les nœuds possibles
extrait du journal de makepp. Lorsqu'on leur donne un ou plusieurs modèles (en utilisant "?", "*", "**" et/ou
"[...]"), il correspondra à ceux du système de fichiers et fonctionnera sur tout ce qui se produit également dans le
Journal. Pour ceux-ci, il sélectionnera par défaut "vers le haut", c'est-à-dire toutes les cibles qui dépendent de
et/ou inclure n'importe lequel d'entre eux et « vers le bas », c'est-à-dire toutes les cibles et/ou sources, dont l'un des
elles dépendent et/ou incluent. (Les directions sont métaphoriques, car le graphique est
mieux affiché de gauche "haut" à droite "bas" en raison de la largeur des nœuds.)

-A nom de fichier
--args-file=nom de fichier
--arguments-file=fnom de fichier
Lisez le fichier et analysez-le comme éventuellement entre guillemets et/ou saut de ligne séparé
options.

-b
--car
--build-raisons
Si un nœud a été reconstruit en raison d'une dépendance, ce bord est affiché en rouge. Hélas
makepp applique des optimisations pour détecter quand une cible a besoin d'être reconstruite, de sorte qu'elle
ne peut souvent pas dire quel fichier a déclenché la reconstruction. Si le nœud a été reconstruit pour un
raison non attribuée à un autre fichier, alors la bordure du nœud est rouge. Avec
uDraw(Graph) une double bordure est utilisée à la place, car elle ne prend pas en charge la couleur de la bordure.

-D
--dépendances
Tracez un graphique de la relation de dépendance déterminée par makepp. C'est la valeur par défaut
à moins que "-i, --includes" ne soit également donné.

-d
--vers le bas
--vers le bas
Cette option n'a de sens que si vous fournissez un ou plusieurs modèles. Il ne fera alors que
sélectionner les cibles et/ou sources dont dépendent les fichiers appariés, ou dont ils
comprendre.

-g
--graphviz
--point
Produire un Graphviz .point fichier, au lieu du uDraw (Graph) par défaut .udg fichier.

-h
--html
Produire un navigateur .html fichier, au lieu du uDraw (Graph) par défaut .udg fichier.

-?
--Aidez-moi
Imprimez un bref résumé des options.

-I annuaire
--include=annuaire
--include-dir=annuaire
Ajoutez des effets de annuaire vers le chemin de chargement Perl @INC.

-i
--comprend
Au lieu des dépendances (ou avec "-D, --dependencies" en plus), dessinez un
graphique des relations d'inclusion. Cela n'aura été enregistré que dans la mesure où cela était nécessaire
à analyser. Pour obtenir une image complète, vous avez besoin d'une nouvelle version complète.

-l nom de fichier
--log=nom de fichier
--log-file=nom de fichier
Le manuel de formation nom de fichier est l'endroit où makepp a écrit son journal. Il peut également s'agir d'un répertoire, dans lequel un
fichier appelé .makepp/log or enregistrer sera recherché. Pour lire à partir de stdin, vous devez donner -
en tant que nom de fichier. Lorsque cette option n'est pas donnée, la valeur par défaut est le répertoire courant.

Cette option peut être donnée plusieurs fois, par exemple pour fusionner tous les journaux de
"--traditionnel-récursif-faire". Mais les dépendances que vous avez cachées à makepp via le
Le paradigme de récursivité maléfique ne peut bien sûr pas apparaître ici.

-M module[=argument,...]
--module=module[=argument,...]
Chargez le module et importez toutes les fonctions qu'il exporte.

-m code perl
--merge=code perl
Effectuer code perl pour chaque cible et ses dépendances. Voir la fusion pour plus de détails sur
cette option.

-o nom de fichier
--sortie=nom de fichier
Écrivez la sortie dans ce fichier.

-p
--plaine
N'utilisez pas d'attributs comme les couleurs ou les lignes pointillées. Ceci est particulièrement utile pour
sortie "-t, --text" épurée. Dans ce format, les bords bidirectionnels seront perdus
à moins que vous ne le combiniez avec "-s, --separate-directions".

-r code perl
--renommer=code perl
Effectuer code perl pour chaque cible et ses dépendances. Voir changement de nom pour plus de détails
à propos de cette option.

-s
--directions-séparées
Dessinez deux flèches séparées, au lieu de chaque flèche à double extrémité, pour les rendre plus faciles à
place.

-t
--texte
Produire un texte lisible par l'homme .SMS fichier, au lieu du uDraw (Graph) par défaut .udg fichier.

-u
--en haut
--vers le haut
Cette option n'a de sens que si vous fournissez un ou plusieurs modèles. Il ne fera alors que
sélectionnez les cibles qui dépendent et/ou incluent les fichiers correspondants.

-V
--version
Imprimez le numéro de version.

RÉÉCRITURE


Les techniques de ce chapitre sont généralement essentielles pour obtenir un graphique de taille raisonnable. Comme
ils sont formulés en tant que code Perl, sachant que la langue est utile. Mais tu devrais pouvoir
faire pas mal de choses avec les exemples ici ou dans la galerie
<http://makepp.sourceforge.net/gallery/>.

Renommer
C'est la réécriture du prénom qui se produit, si l'option "-r, --rename" est donnée. Pour
chaque nom rencontré, perlcode est appelé. Il obtient un nom de fichier en $_, et il peut modifier
ce. Cela est souvent nécessaire, car makepp enregistre les noms de fichiers complets, de sorte qu'un nœud peut
faire facilement un demi-écran de large.

D'une part, vous pouvez réécrire les noms en "undef" ou la chaîne vide. Cela éliminera
le nœud du graphe. Notez que l'élimination d'un nœud dans cette première étape brisera un
chaîne de dépendance si ce nœud était au milieu.

Vous pouvez également réécrire différents noms dans la même chaîne, en les forçant tous dans le même
node, qui accumule les dépendances et les dépendants combinés.

D'un autre côté, vous pouvez simplement renommer les noms en noms (généralement) plus courts, afin de réduire
la largeur des nœuds, qui peut être beaucoup trop large avec des noms de fichiers absolus. Il y a un peu
fonctions prédéfinies dans le package "Mpp::Rewrite", dans lequel votre code s'exécute également, vous pouvez utiliser
pour ça. Ceux-ci renvoient vrai s'ils ont fait quelque chose, vous pouvez donc les combiner comme dans :

--rename='cwd( 1 ) || &accueil || &usr'

&cwd
CWD nombre
CWD nombre, Nom[, séparateur]
Supprime le répertoire de travail actuel du début du chemin. Avec un nombre, aussi
remplace les répertoires parents qui montent de nombreux niveaux avec le bon nombre de .. /
répertoires, le cas échéant. Dans ce cas, vous pouvez donner un autre prénom, comme un
empilé ':' au lieu de '..' et en plus un autre séparateur comme '' à la place
de '/'. Dans le premier cas, vous pourriez obtenir :/:/un B, dans le second encore plus court ::un B
au lieu de ../../un B. Passer un nombre est utile si vous tirez des trucs de
arbres voisins. Ou vous avez un src répertoire, où se trouve la majeure partie de l'action, de sorte que vous
appelez makeppgraph là-bas, mais souhaitez également voir la relation avec vos autres répertoires.

Si vous ne donnez pas d'option "--rename", &cwd est la valeur par défaut. Si vous ne voulez pas de changement de nom,
tu peux en donner code perl comme "--rename=1" qui ne fait rien.

&rép
Celui-ci est un grand réducteur de complexité graphique. Il réduit chaque fichier à son
annuaire. Cela revient à la question : "Les fichiers de quel répertoire dépendent des fichiers
à partir de quel autre répertoire ?" Notez que bien que le graphe de dépendance soit toujours acyclique
(sinon makepp ne saurait pas par où commencer la construction), ce n'est pas le cas de cette réduction
vue. Par exemple si rép1/a dépend rép2/b et rép2/a on rép1/b qui s'affichera comme un
dépendance mutuelle entre Dir1 et Dir2. Puisqu'un graphique cyclique n'a pas de départ évident
point, la mise en page peut être étrange.

Contrairement aux autres fonctions de cette section, celle-ci n'est pas exclusive aux autres. Donc
vous ne voudrez peut-être pas le combiner logiquement :

--rename='&dir; &cwd || &domicile'

&domicile
Remplace votre répertoire personnel par ~/.

&makepp
Remplace le répertoire d'installation makepp par |m|.

&suf
suf nombre
Celui-ci est également un grand réducteur de complexité de graphe. Il réduit chaque fichier qui a
un suffixe à un astérisque et ce suffixe. Ainsi, vous pouvez voir quels types de fichiers dépendent
sur quels autres types. Avec un argument de 0, il laisse le premier caractère du
répertoire, à condition qu'il s'agisse de "/", "~" ou "|" (comme indiqué par &home ou &usr si vous
appelé ceux-là en premier). Avec un argument positif, il laisse autant de niveaux de répertoires
au début. Avec un argument négatif, il supprime autant de niveaux de répertoire à
la fin. Donc pour /a/b/c/d/e/xy vous obtenez:

&suf *.y
suf 0 /*.y
suf 1 /a/*.y
suf 2 /a/b/*.y
suf -1 /a/b/c/d/*.y
suf -2 /a/b/c/*.y

Pour un proche a/b/c/d/e/xy vous obtenez:

&suf *.y
suf 0 *.y
suf 1 a/*.y
suf -1 a/b/c/d/*.y

&usr
Sous /, /usr, /usr /local, /usr /X11, /usr /X11R6, /usr /X11R7 or /opt, pour l'un des
répertoires bin, etc, iinclure, lib or slièvre, les initiales de ces mots sont
concaténées entre les barres.

Par exemple /usr /llocal/bdans/foobar devient |ulb|foobar or /usr /iinclude/net/if.h devient
|ui|net/if.h. Notez que « l » signifie « local » entre deux lettres et pour « lib »
comme dernière lettre.

Fusion
C'est la deuxième réécriture de nom qui se produit, si l'option "-m, --merge" est donnée. Cette
L'API est encore en cours de développement ! Actuellement, la cible est passée dans $_ et la dépendance
comme argument. Si perlcode renvoie une valeur, cette valeur remplace à la fois la cible et le
dépendance, en les fusionnant en un seul nœud. Quelques fonctions prédéfinies peuvent vous aider :

c2o Pour toute source C/C++ et le résultat .o fichier, fusionnez-les en un seul nœud, en ajoutant à
le chemin source un suffixe de ">o" comme quelque/où/foo.cc>o, même si le .o le fichier est dans
un autre répertoire.

exe Pour tout .o fichier et l'exécutable résultant du même nom de base notdir sans
suffixe ou avec .exe, fusionnez-les en un seul nœud, en ajoutant un astérisque à la .o fichier.
Cela ne fonctionnera pas actuellement avec c2o.

x2 Pour toute paire de fichiers portant le même nom, généralement un en-tête ou une bibliothèque publié sur un
répertoire central, fusionnez-les en un seul nœud, en ajoutant *2 à la dépendance.

ENVIRONNEMENT


Makeppgraph examine la variable d'environnement suivante :

$MAKEPPGRAPHFLAGS
Tous les indicateurs de cette variable d'environnement sont interprétés comme des options de ligne de commande avant
toutes les options explicites. Les guillemets sont interprétés comme dans les makefiles.

Utiliser mppg en ligne en utilisant les services onworks.net


Serveurs et postes de travail gratuits

Télécharger des applications Windows et Linux

Commandes Linux

Ad




×
Publicité
❤ ️Achetez, réservez ou achetez ici — gratuitement, contribue à maintenir la gratuité des services.