Si le titre de cette question vous semble un peu vague, j'en suis désolé. Mais je n'étais pas sûr de savoir comment distiller ce que j'essaie de faire en une seule phrase.
Il y a quelques semaines, j'ai appris que je pouvais construire et installer des versions récentes d'Octave sur un système Ubuntu 12.04 en suivant les étapes ci-dessous.
-
Installer les outils nécessaires pour compiler, lier et exécuter octave. Pour Ubuntu, les commandes ci-dessous ont fonctionné pour moi.
sudo apt-get build-dep octave3.2 sudo apt-get install build-essential gnuplot gtk2-engines-pixbuf sudo apt-get install libfontconfig-dev bison
-
Ensuite, téléchargez le code source d'une version d'Octave à partir du site web Archives du projet Gnu pour Octave et décompressez l'archive dans un dossier de votre système.
-
Utilisez les commandes ci-dessous pour construire, vérifier et installer octave.
./configure make make check sudo make install
Malheureusement, il s'avère que ce qui précède construit un Octave qui contient toutes les tables de symboles de débogage. Les fichiers objets à eux seuls sont énormes et occupent environ 1,7 Go.
L'actuelle Documentation Octave suggère
Pour compiler sans déboguer les symboles, essayez la commande
make CFLAGS=-O CXXFLAGS=-O LDFLAGS=
au lieu demake
.
Cependant, lorsque j'ai essayé cela, cela a donné pas travail. Les -g
était toujours utilisée pour les compilations. Pour le plaisir, j'ai essayé à la place ./configure CFLAGS=-O CXXFLAGS=-O
et ceci a fait travail. (Au lieu de ~1.7GB, le résultat de la construction prend maintenant environ 253MB).
Mes questions sont les suivantes
- Est-ce vraiment la méthode correcte (recommandée ?) à utiliser pour compiler Octave sans symboles de débogage (c'est-à-dire sans
-g
) ? - Comment compiler Octave pour qu'il utilise x86_64 plutôt que x86 ?
Note : Je suis pas demandant comment compiler Octave pour utiliser les entiers 64 bits (expérimentaux) pour les dimensions des tableaux. Je veux juste permettre au compilateur d'utiliser les registres supplémentaires et les tailles de mots disponibles lorsqu'une application fonctionne en mode 64 bits. - Existe-t-il une liste (plus) complète des directives utilisées avec le Makefile Octave ?
Je n'ai vu quemake
,make check
ymake install
documenté. Mais apparemmentmake distclean
est également autorisée. (Elle supprime les résultats de la compilation, ce qui permet de tout reconstruire).
Je me demande ce qu'il y a d'autre de disponible.
À titre d'information, j'ai essayé d'utiliser./configure CFLAGS="-O3 -mtune=core2 -m64" CXXFLAGS="-O3 -mtune=core2 -m64"
et, de manière surprenante, il a non seulement semblé se construire, mais il a également fonctionné et a passé le test de l'évaluation des risques de l'entreprise. make check
des tests.
Mais bien sûr, ce n'est pas la même chose que de le dire réellement ". travaux ". Existe-t-il une méthode recommandée pour permettre à Octave de fonctionner en tant qu'application x86_64 ?
J'ai également essayé de regarder à l'intérieur de l'Octave Makefile
pour voir si je pouvais déchiffrer les directives de ligne de commande qu'il accepte. Je n'ai rien trouvé. Je n'ai pas la moindre idée de la manière dont ce Makefile fait ce qu'il fait.