Linux-Windows - C++ - Programmation
Marsh Posté le 10-08-2002 à 12:58:47
sous linux, tous les outils essentiels a la programmation sont libres :
- le compilateur C/c++ (gcc et g++)
- tous les editeurs de textes (vi, emacs, ou avec GUI gedit..)
- les univers de devellopement (Kdevelop, anjuta)
- et surtout le debogueur (gdb)
- une floppée de librairies excellentes. (par exemple Qt et gtk+ pour les GUI, ...)
Sous windows, la plupart des logiciels sont propriétaires, et souvent payant. (a part les portages de choses exisant deja sous linux comme mingw32 qui est le protage de gcc)
Sous linux, tu peux voir le fonctionnement de tous les programmes que tu utilises (très souvent programmés en C ou C++) puisque les logiciels sont libres, contrairement à windows.
Marsh Posté le 10-08-2002 à 13:26:04
Merci pour ton conseil.
Je débute aussi sous Linux... Alors j'aimerais savoir ce qu'il faut faire éxactement.
1) J'écris mon programme sous Emacs, ensuite je l'enregistre en quel extension (.ccp ?) ?
2) Puis il faut le compiler, je lance Gcc et qu'est-ce que je fait ? Ca se fait automatiquement ?
3) Je lance le débogueur ?
4) Et quel fichier je dois lancer pour regarder mon programme (sous windowsd c'est en .exe mais sous linux ? ) ?
A quoi servent les les univers de devellopement (Kdevelop, anjuta) ?
MErci
Marsh Posté le 10-08-2002 à 13:54:39
Citation : |
tu l'écris avec l'éditeur que tu veux :
emacs, vi, scite, kwrite, anjuta, kdevelop, cat...
c'est toi qui choisie
l'extension en général c'est soit .cpp, ou .cc ou encore .cxx, comme tu veux tu choises
mais si tu ne connais pas le C++ commence par le C, l'extension est alors tout simplement .c
pour apprendre le C++ il faut de toute facon connaître le C
Citation : |
cf http://forum.hardware.fr/forum2.ph [...] h=&subcat=
et je pense qu'il y a pas mal de tutoriaux sur le net
Citation : |
ddd est une surcouche graphique (donc plus facile) au débuggeur gdb (qui en mode texte)
il y a aussi gvd http://libre.act-europe.fr/gvd/
dans la console simplement :
ddd ./mon_programme
ou
gvd ./mon_programme
Citation : |
sous linux un executable (ou encore binaire) n'est pas lié à une extension particulière mais simplement à l'attribut d'execution :
$ ll kdevelop
-rwxr-xr-x 1 root root 2205032 May 26 13:12 kdevelop
le x signifie execution, kdevelop est donc un executable
en revanche un fichier texte tout con ca donne :
$ll sony_viao.txt
-rw-r--r-- 1 tanguy tanguy 2351 Apr 27 16:17 sony_viao.txt
y'a pas de x
pour un répertoire qui s'appelle tanguy :
drwxr-sr-x 2 tanguy tanguy 4096 Dec 17 2001 tanguy
y'a un d qui signifie directory et un x pour pouvoir "traverser le répertoire"
de toute facon quand tu vas compiler tes sources, ca va te donner un executable qui aura les caractéristiques (ou droits) tout comme il faut
dans la console les executables sont facilement répérables car ils ont une couleur verte. blanc pour les fichiers normaux et bleu pour les répertoires (en général c'est les couleurs par défaut)
pour lancer l'executable, dans la console dans le répertoire ou se trouve le programme tu tapes :
./mon_programme
il faut pas oublier le ./ devant, c'est fait comme ca pour un problème de sécurité.
Citation : |
A être plus productif tout simplement.
par exemple il suffit de cliquer sur un bouton pour compiler ou débugguer, ca te donne la liste des fichiers sources du programme ...
mais pour débuter, utilise simplement ton éditeur de texte préféré tu n'as pas besoin pour le moment d'apprendre un environnement de développement.
tu as déjà suffisamment de boulot pour apprendre le langage
personnelement je te conseil l'éditeur SciTe pour débuter : http://www.scintilla.org/SciTE.html
il est très simple et fonctionne sous linux et windows
installe le sous windows et regarde s'il te plait en ouvrant avec un fichier .c
Je te conseil avant de te lancer dans le développement sous Linux de lire de la documentation sur le système UNIX/Linux
Si ca te barbe, reste sous windows avec dev-c++ (qui est basé sur gcc le compilo par défaut sous Linux), c'est très bien pour commencer.
et achete toi un livre sur la programmation C ou trouve des tutoriaux sur le net.
attention à ne pas prendre une doc qui explique comment programmer sous tel ou tel environnement : le but au départ c'est d'apprendre un langage de programmation, pas un outil de développement.
Marsh Posté le 10-08-2002 à 14:14:47
MErci de passer du temps à me répondre ! Ce sont des réponses très claires et qui vont beaucoup m'aider !
JE vais faire un DUT Informatique l'année prochaine (ce n'était pas mon premier voeu donc c'est pour ça que je ne connais pas les langages) et on m'a dit lors de l'inscription qu'on ferait du C++ .
C'est pourquoi j'ai acheté un gros livre sur le C++ : "Le programeur : Le Langage C++ en 21 jours". Ce livre explique très bien le langage C++; pas à pas et ça me semble un bon livre pour apprendre petit à petit ce langage.
Tu crois que ce serait plus facile d'apprendre le C puis après le C++ ou bien on peut commencer par le c++ directement grâce à ce livre ?
Marsh Posté le 10-08-2002 à 14:55:09
Neo-Spy a écrit a écrit : C'est pourquoi j'ai acheté un gros livre sur le C++ : "Le programeur : Le Langage C++ en 21 jours" Tu crois que ce serait plus facile d'apprendre le C puis après le C++ ou bien on peut commencer par le c++ directement grâce à ce livre ? |
pour le livre c'est une très bonne initiative.
personnelement les trucs "j'apprend X en 21 jours" c'est réellement pas ce que je recommande !
cf http://forum.hardware.fr/forum2.ph [...] h=&subcat=
le C++ appporte l'orienté object au langage C
donc tu es "obligé" de maitriser le C pour maitriser le C++
c'est l'ordre logique des choses.
par exemple avant d'apprendre à conduire un camion, t'apprends à conduire un vélo, puis une voiture de tourisme ect...
mais le C++ à une caractéristique interéssante : il est compatible avec le C
c'est à dire que tu peux programmer comme en C et compiler le programme avec un compilo C++
donc régulièrement quand les gens parlent du C++, en faite ils font du C avec un compilo C++
une chose est sur, c'est que le C++ si ca pouvait se maitriser en 21 jours, ca se saurait !
Marsh Posté le 10-08-2002 à 15:05:34
tanguy a écrit a écrit : le C++ appporte l'orienté object au langage C donc tu es "obligé" de maitriser le C pour maitriser le C++ c'est l'ordre logique des choses. par exemple avant d'apprendre à conduire un camion, t'apprends à conduire un vélo, puis une voiture de tourisme ect... |
Non c'est faux, au contraire. Je déconseillerais d'apprendre le C et ses bidouillage avant le c++.
Schumacher n'a pas appris à piloter sur une F1 des années 50.
Citation : |
Pas toujours.
Citation : |
C'est un des pb de la confusion entre les 2 langages.
Citation : |
C'est certainement le langage informatique utilisé courramment le plus complexe.
D'ailleurs, il est rarement utilisé "à fond" en milieu professionnel (et pas seulement à cause des compilos mais aussi par manque de maîtrise des développeurs).
Je dirais même que très peu de développeurs pro en c++ connaissent tous les "raffinements" du langage.
C'est sans doute le pire langage pour apprendre la programmation.
Marsh Posté le 10-08-2002 à 15:15:44
Verdoux a écrit a écrit : Non c'est faux, au contraire. Je déconseillerais d'apprendre le C et ses bidouillage avant le c++. Schumacher n'a pas appris à piloter sur une F1 des années 50. |
Tout à fait. On n'a pas besoin de savoir se servir d'un marteau pour pouvoir utiliser une perceuse. Le C, aujourd'hui, c'est bon pour programmer des OS, des drivers ou de l'embarqué, pour tout le reste, le C++ apporte une facilité de design incomparable.
C++ n'est pas le pire langage pour apprendre la programmation, au contraire, c'est le langage qui impose le plus au programmeur d'être rigoureux.
Marsh Posté le 10-08-2002 à 15:16:08
bah je sais pas, dans mon école, l'esiee, on commence par le c++...
on apprend d'abors a programmer "en C", mais le c++ apporte des choses bien pratiques, comme les flux cin et cout... paradoxalement, ca aide bpc plus a apprendre pasque tu perds pas 3 h avec les entrées/sorties simples en console
Marsh Posté le 10-08-2002 à 15:20:36
Exemple de comportements différents entre C et C++:
Code :
|
Compile avec un compilo C mais pas avec un compilo C++
Code :
|
Affiche 4 compilé avec gcc et 1 compilé avec g++
(en C, les constantes caractères comme 'a' sont des int mais ce sont des char en c++)
Marsh Posté le 10-08-2002 à 15:42:55
Verdoux a écrit a écrit : Non c'est faux, au contraire. Je déconseillerais d'apprendre le C et ses bidouillage avant le c++. Schumacher n'a pas appris à piloter sur une F1 des années 50. |
S'il utilise un compilo C++ il pourra utilisé cout, string et list (donc pas les bidouillages du C) sans pour autant faire du C++ mais plutot du C.
si tu commences à lire un bouquin de C++ qui t'explique les classes, le polymorphisme, les héritages virtuelles et les exceptions alors que tu as du mal à faire une boucle for, à comprendre les pointeurs et les fonctions je trouve que c'est débile.
Dans une doc ou un bouquin sur le C, au moins les éléments basiques de la programmation structurée seront approfondies et non survolés.
il apprendra par la même occasion les char *, printf() et malloc, c'est vrai qu'en C++ on a mieux, mais c'est quand meme pas un drame, ni insurmontable.
et sinon tout le monde est au courant que la norme C++ impose quelques incompatiblités avec le C. dans le cadre de ce topic on en a rien à foutre. y'a pas besoin d'avoir de débat la dessus.
Marsh Posté le 10-08-2002 à 15:54:10
tanguy a écrit a écrit : si tu commences à lire un bouquin de C++ qui t'explique les classes, le polymorphisme, les héritages virtuelles et les exceptions alors que tu as du mal à faire une boucle for, à comprendre les pointeurs et les fonctions je trouve que c'est débile. |
Apprendre la prog en commençant avec le c++ est une hérésie.
Il y a plein de langages plus adaptés, comme python par exemple.
C'est interprété, on peut faire plein de trucs, c'est pas typé, y a déjà les listes, les tables de hachage, les classes, bcp de modules variés.
Marsh Posté le 10-08-2002 à 16:03:27
Verdoux a écrit a écrit : Apprendre la prog en commençant avec le c++ est une hérésie. Il y a plein de langages plus adaptés, comme python par exemple. C'est interprété, on peut faire plein de trucs, c'est pas typé, y a déjà les listes, les tables de hachage, les classes, bcp de modules variés. |
tout le monde est d'accord pour dire que Python c'est parfait pour apprendre (et pas que pour apprendre).
mais neo-spy souhaite prendre un peu d'avance sur les cours de C/C++ qu'il va avoir dans son IUT.
oui y'a des trucs pourris dans le C et le C++ qui sont chiants à apprendre, mais de toute facon il va devoir y passer dans quelques mois alors...
Citation : |
Marsh Posté le 10-08-2002 à 16:06:56
Je lui conseille quand même de se mettre à python en //.
Ca lui servira sûrement et ça lui montrera l'archaïsme du C (et du C++ sans STL )
Marsh Posté le 11-08-2002 à 03:57:05
tanguy a écrit a écrit : [quote]mais pour débuter, utilise simplement ton éditeur de texte préféré tu n'as pas besoin pour le moment d'apprendre un environnement de développement. |
Euh...
Je ne saurais trop conseiller à un débutant de commencer tout de suite avec un environnement de développement offrant :
-la coloration syntaxique
-l'aide intégrée
-l'auto-complétion des noms
-le menu contextuel des membres
-la réindentation automatique
-le lancement du compilateur/linkeur intégrée
-l'affichage des lignes de code correpondant aux erreurs
-intégrant le débogueur
Verdoux a écrit a écrit : C'est sans doute le pire langage pour apprendre la programmation. |
C'est vrai qu'il est compliqué (parce que complexe), mais il y a toujours pire...
Verdoux a écrit a écrit : Apprendre la prog en commençant avec le c++ est une hérésie. |
Parce qu'il n'est pas bavard ?
Parce qu'il a beaucoup de concepts différents ?
C'est aussi un avantage: celui qui comprends le C++ comprendra facilement beaucoup d'autre langages.
Je recommende de commencer en C++, même si au début on ne fait que du sous-ensemble C.
Parceque le C++ est plus strict que le C.
Marsh Posté le 11-08-2002 à 11:22:54
musaran a écrit a écrit : Je recommende de commencer en C++, même si au début on ne fait que du sous-ensemble C. Parceque le C++ est plus strict que le C. |
toutafé
Marsh Posté le 18-02-2003 à 00:59:46
Neo-Spy a écrit : Vous le savez surement déjà, je m'initie depuis hier au C++ |
Excusez-moi, mais je reviens sur le message de départ, mais ce n'est pas aprce que l'on programme sous Linux (en opposition à la programmation sous Windows) qu'on aura moins de bugs, ni que ce sera plus simple, je parle bien sûr des bugs dans le logiciels que tu vas programmer, les bugs dans le logiciels que tu vas programmer, ce n'est pas l'OS qui l'est fait, mais c'est toi ...
Et moins simple ce n'est pas forcément vrai, la ligne de commande pour compiler à l'aide de GCC peut paraître déroutant à la place d'un joli IDE sous Windows.
(Je programme moi même sous Linux, n'allez donc pas dire que je défends windows ...)
Marsh Posté le 18-02-2003 à 01:36:55
J'ai pas tout lu, mais tout d'abord attention :
Citation : (...)d'utiliser Linux pour programmer. Les logiciels sont meilleurs et c'est beaucoup plus simple (moins de bug etc...). |
Citation : pour apprendre le C++ il faut de toute facon connaître le C |
c'est de la graine de troll ça. Et donc forcement je craque !
Mon avis perso : s'initier seul à la programmation, c'est difficile.
Alors si en plus tu dois découvrir Linux ...
Faut choisir entre "apprendre le C++" ou "apprendre Linux".
Installer Linux juste pour avoir gcc, je trouve ça idiot.
Le mieux : programmer en C++ sous Windows et Linux.
Faut toucher un peu à tout.
Sous Windows, tu peux utiliser DevCpp, que personne n'a mentionné
Il utilises le même compilo que sous Linux.
Ton pote est en maitrise. Emacs, Makefile, man gcc, tout ca il est rodé. Chacun sa notion de la simplicité, mais entre :
- passer une apres midi à apprendre les racourcis emacs + une journée à confectionner un makefile + 2 heures à batailler parce que t'as appelé ton programme test et que tu comprends pas pourquoi cout << "Hello World ! << endl; marche pas quand tu lance test
- cliquer sur le bouton "compiler" de devcpp
moi j'ai vite choisi pour un débutant.
C'est carricaturé, mais pas tant que ça, car si on commence à parler de gdb ...
Alors trouve toi quelqu'un qui connaisse Linux et qui te l'explique (install, configure ...).
Mais dans l'immédiat, telecharge devcpp et fait tes 1° pas en douceur.
http://www.bloodshed.net/devcpp.html
Si tu as déjà Linux d'installé sur ta machines, et que tu te débrouilles avec, ben pas de probleme alors.
Pour le choix C/C++ :
C et C++ sont des langages différents, et tu peux choisir l'un ou l'autre.
Le probleme avec C++, c'est qu'il utilises pas mal de concepts dont tu ne saisis pas la portée / utilité et t'es vite perdu.
Moi aussi, avant d'entrer à l'IUT, je me suis acheté un bouquin de C++ et je me suis lancé.
Alors je fesais une classe, mais je pigeais pas trop à quoi ça servait d'en faire une.
De même les pointeurs, je pigeais pas en quoi c'était utile.
Or moi j'étais pressé de créer une fenêtre avec un bouton.
Alors si c'est ça que tu veux, tu devrais pencher pour un autre langage, en particulier un langage interprété.
Verdoux t'as proposé python.
Y'en a d'autres : perl, Tcl, ...
Ceux là sont dispos sous Linux et Windows.
Bon courage.
Marsh Posté le 18-02-2003 à 05:23:47
moi je dis que pour apprendre le top c'est de commencer par Eiffel
Marsh Posté le 18-02-2003 à 09:43:03
heu les débats sur les langages c'est par là :
http://forum.hardware.fr/forum2.php3?cat=10&post=31321
Marsh Posté le 18-02-2003 à 09:56:24
Citation : |
Ca n'a rien à voir. Faire du C++ sans maitriser le C est le meilleurs moyen pour gélérer et finalement faire un code de merde.
Citation : |
Tu manques de cohérence dans ce que tu dis visiblement... (cf remarque précédente)
Marsh Posté le 10-08-2002 à 12:02:24
Vous le savez surement déjà, je m'initie depuis hier au C++
Un copain qui a fait sa maitrise d'info ne cesse de me répeter d'utiliser Linux pour programmer. Les logiciels sont meilleurs et c'est beaucoup plus simple (moins de bug etc...).
Qu'est-ce que vous me conseillez ?
Message édité par neo-spy le 10-08-2002 à 12:02:56