#1 Le 19/03/2006, à 19:36
- Shuriken
[Résolu]Linux, le C, le Visual Basic, et moi !
Bonjour,
Étant un débutant, aussi bien sous Linux qu'en programmation, j'ai quelques questions en vrac.
Pour mon premier langage, j'ai choisi le C, je sais que le Python aurait pu être un choix plus judicieux pour un débutant mais j'espère acquérir ainsi de bonnes bases et de plus, il y a un excellent tutorial C/C++ sur le site du zéro.
Par commodité, je préfère taper mon code source sous Kate, puis le compiler et l'exécuter en console avec gcc, plutôt que de prendre un IDE.
- À part $ gcc -o main main.c et $ ./main.c, quels sont les principales commandes à connaître ?
Évidemment, je ne vous fait pas l'affront de vous demander une explication en long et en large de "man gcc", mais juste les deux, trois trucs de base à connaître quoi !
- À la fin de la fonction principale "int main ()", j'ai déjà vu ces deux cas : return EXIT_SUCCESS; et return 0;
C'est quoi la différence ?
Et pour finir, au lycée on fait du Visual Basic (plus précisément des macro en vba pour MS Excel - on fait aussi du SQL sous MS Acces, mais ça c'est une autre histoire !), je me suis renseigné, et j'ai du mal à me forger une idée sur ce langage, si j'en crois les dires de certains VB c'est une véritable prouesse technique, pour d'autres c'est tout de suite "bouh MS ça pue".
- Objectivement, VB ça vaut quoi ?
- Peut-on faire du VB sous Linux ? (Je ne suis plus en dual-boot, j'ai viré Windows ).
Merci d'avance !
Dernière modification par Shuriken (Le 24/03/2006, à 19:52)
Don't mess with the penguins!
Hors ligne
#2 Le 19/03/2006, à 19:54
- BlueTak
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
Equivalent linux pour visual basic : Gambas
Hors ligne
#3 Le 19/03/2006, à 20:52
- Xaero
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
VB cay le mal . Voilà c'est dis.
Y'a Delphi dans le même genre (même si c'est mieux ) et donc sous linux ça s'appelle Kylix.
Ensuite ben pour gcc t'es pas obligé de te taper le man, tu peux faire un gcc --help pour avoir les options jugées principales. Même si les man sont plus fournis, man c'est more, donc un man more pour connaître les commandes principales pour naviguer dans un man, faire des recherches etc, peut-être pratique également.
Mais en gros c'est gcc -o <executable> <fichiers_sources>, y'a aussi -lnom_de_la_lib_a_linker, -I/repertoire/ pour chercher les inclusions là dedans aussi, etc ...
Pour les choses plus compliqué, y'a les makefile, et c'est là qu'interviennent les IDE, qui généralement génèrent eux-même les makefile.
Pour EXIT_SUCCESS et 0 c'est la même chose, 0 est le retour de fin de programme s'étant bien terminé, EXIT_SUCCESS aussi.
Je suppose que ça peut changer selon certaines archi ou implémentations, et que c'est pour ça qu'ils ont implantés ces définitions, donc si ton programme bouge pas tu peux utiliser 0, sinon EXIT_SUCCESS, c'est un peu plus long à écrire mais c'est pas bien grave. Tout comme EXIT_FAILURE pour une sortie d'erreur.
Dernière modification par Xaero (Le 19/03/2006, à 20:54)
Think you are addicted ? Quake makes you feel it !
jEdit : Un éditeur qu'il est bien !
FreeMind : Un programme qu'il est bien aussi !
Hors ligne
#4 Le 19/03/2006, à 21:05
- Noé
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
Bah heu...
c++ et g++ (équivalents) pour compiler du C++
Ensuite si tu as cd, ls, mv, cat et autres dans la poche je pense que tu n'as pas besoin de grand chose de plus pour débuter. Puis ça vient selon les besoins...
return donne le code de sortie du programme, c'est la valeur qui indique si le programme a marché ou pas. Par convention, 0 signifie que tout s'est bien passé et les autres valeurs signifient une erreur. Pour récupérer sa valeur de sortie après l'exécution d'un programme, tapes 'echo $?' ($? est la variable contenant la valeur de sortie du dernier programme exécuté.
Et Ruby c'est mieux que Python (pour te donner une idée, j'ai implémenté en Ruby un chatterbot qui tient la route en seulement 160 lignes et presque sans difficultés alors que je débutais dans ce langage.)
edit: Rah je suis trop lent... bon :
man il me semble que c'est plutôt less par défaut sous Ubuntu. Enfin voilà quoi.
(En fait man t'affiches la documentation dans un afficheur de fichiers texte (un pager). Le pager historique sous unix est 'more', mais 'less' est 150 fois mieux)
Pour choisir le pager que man utilise, tape sudo update-alternatives --config pager
Dernière modification par Noé (Le 19/03/2006, à 21:49)
dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com
Hors ligne
#5 Le 21/03/2006, à 16:58
- zeugme
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
VB, c'est peut etre pas mal pour des macros sous Excel.
Aucune chance de faire tourner du VB en dehors de Windows, voila une des multiples raisons pour lesquelles je trouve VB pas bien. Ils ont longtemps clame etre OrienteObjet, mais techniquement c'etait carrement un mensonge, ca c'est, parait-il, ameliore maintenant.
Bref, c'est un langage envisageable seulement pour un poste client Windows.
Du C/C++, il faut prendre plein de precautions et recompiler, mais ca peut tourner en dehors du systeme sur lequel il est developpe.
Du Java, il faut prendre quelques precautions et pas besoin de le recompiler.
Hors ligne
#6 Le 21/03/2006, à 18:23
- Shuriken
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
Déjà, merci à tous pour vos réponses.
Commençons par le Visual Basic : je n'ai pas du tout l'intention de faire du VB, encore moins pour mon propre plaisir, c'est juste un langage qui m'est imposé dans le cadre de mes études. Je voulais juste savoir si c'était possible de tester quelques codes en VB sous Linux, si jamais un jour le besoin s'en ferait sentir.
Donc merci jbb, apparemment la réponse est un NON catégorique.
Si je comprends bien, "Gambas" est juste un équivalent, et non un portage, c'est bien ça ?
VB cay le . Voilà c'est dis.
J'aurais été surpris si je n'avais pas lu au moins une fois celle-là !
Passons au C : Noé et Xaero, j'avoue avoir du relire au moins 2, 3 fois vos explications pour en comprendre toutes les subtilités. Ceci dit, j'y vois quand même un peu plus clair
Ensuite si tu as cd, ls, mv, cat et autres dans la poche je pense que tu n'as pas besoin de grand chose de plus pour débuter.
Rajoute cp à la liste et tu as l'étendue de mon savoir
Pour en revenir aux IDE, je peux vraiment m'en passer tant que je ne manie que quelques fichiers *.c et *.h ?
Sinon une dernière question (je sais que je pourrai sans doute avoir la réponse dans des cours de C mais je n'en suis pas encore là) : à quoi servent les fichiers *.o ? (obtenu avec gcc -c machin machin.c)
Encore merci !
Don't mess with the penguins!
Hors ligne
#7 Le 21/03/2006, à 18:27
- Noé
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
Oui tu peux te passer d'une IDE dans tous les cas. C'est une histoire de goûts, c'est tout
Dernière modification par Noé (Le 21/03/2006, à 18:28)
dotdotno ou Phlogistique sur IRC
Jabber : noe.rubinstein CHEZ fritalk.com
Hors ligne
#8 Le 23/03/2006, à 11:09
- Vax
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
Bonjour,
les *.o contiennent le code en langage machine correspondant à tes fichiers .c ou .h. Il sont ensuite utilisés par le compilateur pour former le fichier éxecutable.
C'est une réponse rapide mais ça suffit, en gros pour toi c'est pas utile de t'occuper des .o. Evidemment, ils peuvent avoir une utilité pour certain. Si tu veux en savoir plus, va voir un cours de C comme tu l'as dit.
AMD 64 3500+ | Geforce 6600GT 128Mo
2 Go corsair | DD 160Go | Ubuntu dapper 64
+ 2 PC (ubuntu breezy, winXP+dapper)
Hors ligne
#9 Le 23/03/2006, à 11:30
- m+rh-e
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
Il est utile de savoir créer des makefile. Les makefiles permettent de simplifier les commandes mais également de reconstruire seulement ce qui a été modifié.
ici, un makefile générique, les sources étant dans le dossier src et les headers dans le dossier include ou src.
CC = gcc
INCLUDE = -I./include
CFLAGS = $(INCLUDE) -Wall -O2
LDFLAGS = -Wall -O2
EXEC = my_exec
SRC = $(wildcard src/*.c)
OBJ = $(SRC:.c=.o)
all: $(EXEC)
my_exec: $(OBJ)
$(CC) -o $@ $^ $(LDFLAGS)
%.o: %.c
$(CC) -o $@ -c $< $(CFLAGS)
clean:
rm -rf src/*.o
Dernière modification par m+rh-e (Le 23/03/2006, à 11:30)
Hors ligne
#10 Le 24/03/2006, à 19:51
- Shuriken
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
Merci à tous, je passe en [Résolu]
PS @ m+rh-e : je n'ai absolument rien compris à ton "makefile"...
Mais bon, vu que je ne vois pas l'utilité que je pourrais en avoir, je ne pense pas que je vais me pencher sur le sujet, j'ai déjà suffisamment à faire ...
Don't mess with the penguins!
Hors ligne
#11 Le 27/03/2006, à 11:26
- gene69
Re : [Résolu]Linux, le C, le Visual Basic, et moi !
le *.c c'est un objet ... un intermédiare de compilation .
Son makefile est tres joli MAIS comme ça à chaud j'aurai écris:
#definition des variables internes au makefile
CC = gcc
INCLUDE = -I./include
CFLAGS = $(INCLUDE) -Wall -g
LDFLAGS = -Wall
EXEC = my_exec
SRC = $(wildcard src/*.c)
OBJ = $(SRC:.c=.o)# pour faire accomplir la cible all il faut accomplir toutes les regles dont le nom est enuméré dans EXEC
all: $(EXEC)# la cible my_exec est faite par l'appel du linker (gcc option -o)(relier les *.o en *.exe) contenue dans CC avec les librairie contenues dans LDFLAGS
my_exec: $(OBJ)
$(CC) -o $@ $^ $(LDFLAGS)# génération des objets
%.o: %.c
$(CC) -o $@ -c $< $(CFLAGS)# parfois ya un probleme avec la mise a jour des objets alors l'appel à make clean permet d'être sur de tout recompiler.
#clean:
# rm -rf src/*.o
clean:
rm -v *.o EXEC
en nottant bien que les indentations sont OBLIGATOIREMENT une tabulation.
utilise toujours l'option -g quand tu compiles. ça te permet d'utiliser gdb
tu fais comme ça
gdb my_exec
et là tu peux executer ligne a ligne ton code... jusqu'à trouver le bug.
(break main.c:32)
(continue ou step)
bon et puis si tu as des soucis tu peux passer sur mon blog (si over blog remarche...)
Dernière modification par gene69 (Le 27/03/2006, à 11:30)
Quand le berger est lâche, le loup chie de la laine.
A (draft) guide to UFO Alien-Invasion
Hors ligne