| |||||
| Dernière réponse | |
|---|---|
| Sujet : Comment compiler et EXECUTER un "Hello World!!!" ??? | |
| mexx20 | merci!! ;-)
ca fonctionne sauf que la console devient folle après l'execution du programme (le petit que tu donne exemple aussi) et cela en X et en normal ... En fait tout est décalé et je ne vois plus ce que je tape ... |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| mexx20 | merci!! ;-)
ca fonctionne sauf que la console devient folle après l'execution du programme (le petit que tu donne exemple aussi) et cela en X et en normal ... En fait tout est décalé et je ne vois plus ce que je tape ... |
| axey | Avec l'effacement de l'ecran :
|
| axey | iostream.h ca n'existe pas, les entetes standards du C++ n'ont pas d'extension. Il faut faire
#include <iostream> Et EXIT_SUCESS/EXIT_FAILURE sont des constantes qui servent uniquement a la fonction exit() . Par exemple sous VMS, ce sont des chaines de caracteres, donc ta fonction main() qui renvoit un objet de type "int" n'appreciera pas du tout. Contente-toi d'un return 0; Dernier truc : si ton code source est en c++, donne-lui l'extension .cpp $ cat > yop.cpp
|
| philou_a7 | Il faut aussi que tu dises à gcc de faire un lien avec la bibliotheque ncurses ;)
dans ton cas, la compilation devient "g++ test.c -lncurses" |
| mexx20 | >> JaJar : J'ai installé libncurses5-dev ... Dans mon programme
je fait "#include <curses.h>" comme indiqué dans le man (ncurses(3)) et j'appelle une fois la fonction clear() et à la compilation il y a cette erreur :
|
| Jar Jar |
L'équivalent de getch dans ncurses, c'est getch (regarde dans la page de manuel pour le configurer comme tu veux, il a plein de modes de fonctionnement différents).
|
| mexx20 | Au fait j'utilise les fonction "getch()" et "clrscr()" de "conio.h". La première permet de rentrer un caractère sans devoir appuyer sur "entrée". Ce qui permet de faire des pauses ds les prog par exemple. La deuxième efface ce qui se trouve à l'écran... Si tu pouvais me dire l'équivalent ds une bib propre à linux ça serait super :wahoo: |
| Jar Jar |
conio ne marche pas sous unix, c'est un truc du DOS.
|
| monokrome | non, c une variable d'environnement définit au démarrage du systeme dans les fichiers de /etc/rc.d/xxx et pour chaque user dans ses fichiers rc perso (genre .bashrc, .profile, etc).
pour voir a quoi ca ressemble :
|
| localhost | Juste comme ça, l'est ou $PATH ?
Ca se présente sous fichier texte ? |
| monokrome |
|
| monokrome | j'ai pas dit /home mais un rep /home/bin dans le path nuance :) de ttes facons si kkun a réussi a se logguer sur son compte il a sans doute bien mieux a faire que de se précoccuper du $PATH nan ? bah les gens sérieux ne travaillent pas sur la machine reliée au net :D sinon pour tes header, personnellement (ca engage que moi donc, sur ma machine ou g que mon compte), g fait un rep /home/nom/include et quand je compile une de mes applis je rajoute a la commande pour compiler (au makefile enfin bon je simplifie) -I/home/tonnom/include ou alors tu met tes headers a toi dans un sous-rep de tes sources et dans ton code tu fout
|
| localhost | monokrome a écrit
les .o c les fichiers objets, dans ton cas tu as pas le temps de les voir, ils sont linké directos, et hop binaire.. sous Linux y a pas de .exe; c juste un attribut, par ex pour rendre un script executable tu fait chmod +x fichier et voila, fichier est considéré comme un binaire a part entiere.. la PATH c un ensemble de repertoire (genre
etc)
|
| karoli | si je peux emettre une pitite reserve :
le /home dans le path c'est moyen niveau secu... si un mec arrive a se logguer sur ta becane sous ton nom,donc pas en root il pourra ecrire et executer ce qui s'y trouve... c'est chaud edit: grillaid pcke il m'a grille...suis trp lent ! m'enfin de 20 secondes :na: |
| mexx20 | >>monokrome: Purée de purée je commence à me rendre compte que Linux est nettement mieux que Windows! Ca fait à peine une semaine que je le découvre et je trouve qu'il a été bcp mieux pensé et qu'il est plus simple que windows finallement! T'as as tout à fait raison pour le truc des "program files" et autres! C'est moins logique. J'aime bien cette idée d'attribut pour un executable! Et puis le fait de pouvoir "monter" ce qu'on veux où on veux! On a plus tout les A: C: D: E: et autres! Ce que j'aime aussi c'est l'unique pts de départ "/" Bref Linux c'est vraiment bien ;-)
Pour revenir au sujet, merci pour tes infos sur "PATH". Tu as raison pour le rep "/bin" et "/lib" ds le "/home", c'est pas bete. Alors, autre question : J'aimerai utiliser le fichier "conio.h" qui était par défaut sur mon compilateur BCC sous windows. Où dois je le placer pour qu'il sois avec les autre fichier genre "iostream.h", ... ?? Thx |
| monokrome | les .o c les fichiers objets, dans ton cas tu as pas le temps de les voir, ils sont linké directos, et hop binaire..
sous Linux y a pas de .exe; c juste un attribut, par ex pour rendre un script executable tu fait chmod +x fichier et voila, fichier est considéré comme un binaire a part entiere.. la PATH c un ensemble de repertoire (genre
etc)
|
| mexx20 | >xdmj: Génial!! Ca fonctionne! Thx pour ta rapidité! Donc si je comprends bien les "*.out" ne sont pas les modules objets mais les exectutables? C'est bien ca? ".out" ss linux == ".exe" ss windows ??
>karoli: Merci aussi mais tu es vachement plus lent ;-)grillaaaiiiiidddddd, c'est quoi ca? >matmat: Au fait le "PATH" c quoi exactement? C'est pas une variable d'environnement similaire à "PATH" sous windows qui contient tout les répertoires pour lesquels on peux éxecuter direcement les programmes contenu ds ces répertoires?? Si c'est ce que je pense, comment, sous linux, peux - t - on enrichir cette variable pour par exemple ajouter mon "/home/." ?? Merchiii! |
| matmat | dans le répertoire où se trouve a.out, tape :
./a.out explication: quand un executable ne se trouve pas dans le PATH, il faut préciser le chemin (ici ./) pour le lancer. |
| XDMJ | ;) |
| karoli | merde grillaaaiiiiidddddd ! |
| karoli | j'y conais rien au C mais si t'as pas mis ton "a" dans le path, il faut le lancer depuis ou il se trouve en tapant ./a
a+ |
| XDMJ | ./a.out |
| mexx20 | Bonsoir à tous. Ca va surement vous paraître tout bete comme question. Mais je suis sous linux depuis 1 semanine à peine! Alors voilà, je crée un nouveau fichier a.cpp avec la commande "emacs a.cpp". Ensuite, je tape mon code que voici :
#include <stdlib.h> #include <iostream.h> int main(){ cout<<"Hello World!!!"<<endl; return(EXIT_SUCCESS); } Je sauve, je quitte. Je fais g++ a.cpp et ça me crée un fichier a.out ds le répertoire courant. J'essaye de l'executer en tapant "a.out" et ça me fait "no such command" J'ai essayé avec l'option "-c" mais d'après le man c'est uniquement pour la compilation (pas de linkage) Alors en cherchant un peu je trouve la commande ld pour le linker GNU ??? En faisant "ld -o a.exe a.out" ca me crée mon a.exe ;-) MAIS!! Encore une fois je n'arrive pas à l'éxecuter en tapant "a.exe" ou "a" tout court j'obtient "no such command". Comment executer mon programme et est-ce que l'extension .exe à la même signification sous linux que sous windows? Merci d'avance pour vos réponses. |




