Bienvenue - Willkommen - Wellcome !
Je propose des articles et des exercices pour montrer ce qu'on peut faire face à des questions simples, généralement posées par...
-> divers - how to...
à retenir:
* coder un tableau en C
* chronométrer le code
* problèmes lors de la compilation avec make
-> exercices sur le C
* exo 2 tableaux (correction)
* exo 3 Gestion Entree-Sortie (correction)
* exo 4 Passage d'arguments à main(...) (correction)
* exo 5 Conditions && compilation
Je vais recentrer mon activité sur le code. Je laisse les messages sur le serveur.. mais bon, je ne me suis pas convaincu.
Ci dessous la méthode pour faire ce qui est promis dans le titre, l'installation se passe sans heurs violents mais avec des heurs quand mêmes, il y a un peu de travail à faire.
nécessaire: internet pour télécharger les fichiers, un éditeur de texte, les droits root (commande avec le #), ubuntu 6.10 et je vois peu de raison qu'il ne faille pas faire la même chose avec la version 7.04.
1) avec synaptic installer tcl8.4
# apt-get install tcl8.4
2) suivre la procédure en anglais décrite ici ou la mienne:
télécharger otcl-1.13
télécharger tclcl-1.19
télécharger ns-2.31
télécharger nam-1.13
on va dire que les quatres archives sont dans un répertoire install n'importe ou dans un répertoire qui possède au moins 130 Mo de libre.
on extrait tout dans install/nam-1.13 install/ns-2.31 install/otcl-1.13 install/tclcl-1.19, ce sont les répertoires par défaut.
3) On commence par otcl:
-> dans configure.in le block case ligne 75
Linux*)devient, apres correction de l'outil :
SHLIB_CFLAGS="-fpic"
SHLIB_LD="ld -shared"
SHLIB_SUFFIX=".so"
DL_LIBS="-ldl"
SHLD_FLAGS=""
;;
Linux*)
SHLIB_CFLAGS="-fpic"
# http://nsnam.isi.edu/nsnam/index.php/Troubleshooting#ns-2.30.2Fns-2.31_do_not_build_with_gcc.2Fg.2B.2B_4.1
# SHLIB_LD="ld -shared"
SHLIB_LD="${CC} -shared"
SHLIB_SUFFIX=".so"
DL_LIBS="-ldl"
SHLD_FLAGS=""
;;
Cependant ce n'est pas tout, loin s'en faut. Il y a un défaut avec gcc4.1 fourni par ubuntu.
On commence par générer le makefile avec la commande $ ./configure, puis il faut modifier le makefile une fois que celui ci est généré. On se rend ligne 8.
CFLAGS= -g -O2devient par nos soins:
CFLAGS= -g -O2 -fno-stack-protector
Bon vous avez compris le principe? on devra refaire la manoeuvre !
$ make
# make install
c'est quand même ce qui nous interesse !
4) On poursuit par tclcl:
$ ./configure
$ make
# make install
chez moi rien à signaler.
5) La suite s'appelle ns
$ ./configure
Maintenant il faut éditer le makefile pour que ça marche comme il faut, rendez vous dans le fichier Makefile:82 (chez moi) pour ajouter le flag -fno-stack-protector
CFLAGS += $(CCOPT) $(DEFINE) -fno-stack-protectorMaintenant on peut compiler et installer
$ makeUne derniere chose avant de s'arreter, il faut modifier le PATH l'environnement enfin... bref fait ceci, sinon à l'execution il y aura un probleme:
# make install
$ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/la/ou/jai/enregistre/le/repertoire/install/otcl-1.13/"normalement ns fonctionne maintenant.
6) La fin s'appelle nam
$ ./configurenormalement rien a signaler
$ make
# make install