Linux-Windows

Linux-Windows - C++ - Programmation

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
Reply

Marsh Posté le 10-08-2002 à 12:02:24   

Reply

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.
 

Reply

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

Reply

Marsh Posté le 10-08-2002 à 13:54:39    

Citation :


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 ?) ?


 
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 :


2) Puis il faut le compiler, je lance Gcc et qu'est-ce que je fait ? Ca se fait automatiquement ?  


 
cf http://forum.hardware.fr/forum2.ph [...] h=&subcat=
 
et je pense qu'il y a pas mal de tutoriaux sur le net
 

Citation :


3) Je lance le débogueur ?


 
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 :


4) Et quel fichier je dois lancer pour regarder mon programme (sous windows c'est en .exe mais sous linux ? ) ?


 
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 quoi servent les univers de devellopement (Kdevelop, anjuta) ?  


 
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.


Message édité par tanguy le 10-08-2002 à 13:57:37
Reply

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 ?

Reply

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 !

Reply

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 :


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++


Pas toujours.
 

Citation :


donc régulièrement quand les gens parlent du C++, en faite ils font du C avec un compilo C++


C'est un des pb de la confusion entre les 2 langages.
 

Citation :


une chose est sur, c'est que le C++ si ca pouvait se maitriser en 21 jours, ca se saurait !


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.


Message édité par verdoux le 10-08-2002 à 15:05:59
Reply

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.
 




 
:jap:  
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.


Message édité par smaragdus le 10-08-2002 à 15:17:51
Reply

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

Reply

Marsh Posté le 10-08-2002 à 15:20:36    

Exemple de comportements différents entre C et C++:

Code :
  1. char* p = malloc(10 * sizeof(char));


Compile avec un compilo C mais pas avec un compilo C++
 

Code :
  1. printf("%i\n", sizeof('a'));


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++)

Reply

Marsh Posté le 10-08-2002 à 15:20:36   

Reply

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.

Reply

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.

Reply

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 :


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++ .  


Reply

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 :D)


Message édité par verdoux le 10-08-2002 à 16:11:43
Reply

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.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

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é :jap: :jap: :jap:

Reply

Marsh Posté le 18-02-2003 à 00:28:26    

flag


---------------
.
Reply

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++
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 ?


 
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 ...)

Reply

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.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 18-02-2003 à 05:23:47    

moi je dis que pour apprendre le top c'est de commencer par Eiffel


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

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


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 18-02-2003 à 09:56:24    

Citation :


[citation=193475,1][nom]verdoux a écrit[/nom]
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.


 
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 :


mais le C++ à une caractéristique interéssante : il est compatible avec le C


 
Tu manques de cohérence dans ce que tu dis visiblement... (cf remarque précédente)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed