Contenu | Rechercher | Menus

Annonce

Ubuntu-fr vend de superbes t-shirts et de belles clés USB 32Go
Rendez-vous sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 10/06/2019, à 10:39

Foromus

Débuter en C++

Bonjour,

Mes recherches sur le site aboutissent à des discussions déjà anciennes.
Mon souhait :
Depuis de nombreuses années (40 ans....), j'ai + ou - codé en Basic (Zx81, Apple II, etc), actuellement, en Gambas sous Linux.
A titre culturel, je souhaite approfondir un peu le C++, je ne prétends pas devenir développeur, surtout à mon âge !
Pour ce qui est d'écrire du code, j'ai trouvé un éditeur de texte "Pluma", qui fait l'affaire, sans soucis, contrairement à "gedit" qui a un caprice.
Maintenant je voudrais savoir comment lancer un programme écrit, et comment faire un exécutable sous xubuntu.
Si j'ai bien compris, il me faut un compilateur, voire un éditeur de liens, savoir où et comment je trouve les bibliothèques utiles et nécessaires, je suppose que tout ça existe et doit être assez accessible; au besoin, installables par Synaptic (ou sudo install ...).
Dans un premier temps, j'ai un morceau de code de 10 lignes, je voudrais déjà savoir comment le lancer,  j'ai vu que c'était possible par la console, mais je n'ai pas approfondi, j'aimerais plutôt faire un exécutable (comme ça, une lubie...)
Bon, si quelqu'un a une idée...
Notez que, une fois trouvé les outils, c'est à moi de travailler, pas de casser les pieds aux autres à longueur de temps !
L'idéal serait de trouver, comme sous Visual Basic, une IDE pour taper le code, avec un interpréteur pour voir si ça colle, et un compilateur (et + ) pour l'exe., le tout dans la même application. Mais peut-être que je rêve, là...
Merci aux aidants !

#2 Le 10/06/2019, à 11:29

DRbuntu91

Re : Débuter en C++

Bonjour
Je suis informaticien a la retraite et comme toi j'ai voulu en connaître un peu plus sur les langages dites "évolué" (mes points forts étaient Fortran et OpenVMS)
Alors j'ai commencé avec ce cours:https://openclassrooms.com/fr/courses/1 … -langage-c
PS: Comme IDE j'utilise parfois Geany mais j'aime bien Gedit et le Terminal (ça a l'avantage de savoir ce qu'on fait)


Portable CLEVO W550SU, Intel i5-4200M, RAM=8Go, DD=500Go SSD, BIOS 4.6.5 AMI, Ubuntu 16.04 LTS a jour
Puis pour bidouiller un vieux portable Dell Precision M4600 avec W10 + XUB1604 + XUB1804
Utilisateur Ubuntu depuis Janvier 2017

Hors ligne

#3 Le 10/06/2019, à 13:46

Foromus

Re : Débuter en C++

Bonjour et merci pour cette réponse,,

Concernant "gedit",et j'ai lancé un fil là-dessus, il n'accepte pas (chez moi) le caractère "\". J'ai donc évolué vers "Pluma" qui se comporte correctement.
Si je me souviens bien de ce que j'ai vu hier, il me semble que "Classroom" a remplacé le site du zéro, que je trouvais pas mal par ailleurs.
Pour l'heure, j'ai ressorti de ma bibliothèque (livres papier) deux bouquins, j'essaie de voir ce que je peux faire avec, les tutos en ligne, c'est bien, le papier, c'est mieux, on peut le mettre sur la table et le consulter en même temps qu'on travaille sur l'écran.
Donc, et pour le moment, je reste sur ma demande...

#4 Le 10/06/2019, à 14:30

NicoApi73

Re : Débuter en C++

Bonjour,

Le compilateur est g++. Pour l'installer :

sudo apt update
sudo apt install build-essential

Pour tes bouquins, fais attention en fonction de quand ils datent, la norme a un peu évoluée.

Pour faire un exécutable et l'exécuter, prenons l'exemple "Hello world!". Le fichier du source étant exemple.cpp
Voici le code écrit dans l'éditeur de ton choix :

#include <iostream>

using namespace std;

int main ()
{
	cout << "Hello World !\n";
	return 0;
}

Pour le compiler :

g++ exemple.cpp

L'exécutable s'appelle a.out
Pour le lancer :

./a.out

Pour produire l'exécutable avec un nom différent :

g++ -o nom_different exemple.cpp

Pour le lancer :

./nom_different

Dernière modification par NicoApi73 (Le 10/06/2019, à 15:11)

Hors ligne

#5 Le 10/06/2019, à 14:59

Foromus

Re : Débuter en C++

Bonjour NicoApi73,

Merci pour ces explications, qui devraient être présentées d'emblée !
Donc, je vais voir, installer "buid-essential", après, quand je me serai un peu amusé, je verrai !
Passer d'un langage haut niveau à bas niveau n'est pas une mince affaire !
En VB comme en Gambas, quand j'ai besoins d'un bouton, je vais le chercher dans la boîte à outil, je le dépose sur la feuille, après, je code son rôle, pareil pour une listbox ou autre. Rien de tel avec C++, je suppose que depuis le temps, ces outils doivent exister dans une bibliothèque quelconque, je verrai plus tard, de même que la feuile où je devrai les présenter. Pour l'instant, je n'en suis pas là, cependant, j'aimerais bien savoir, à titre de curiosité (et d'espoir - espérance) savoir que c'est possible et quand même pas trop difficile d'accès. J'ai tenté un peu de python, pour voir, outre que la syntaxe me déroute - les identations faisant partie du code - et par ailleurs, je n'ai jamais vu comment aborder le graphisme, or, à l'heure actuelle, toutes les applications (grand public) sont graphiques.
Pour mes 2 bouquins :
1 - Code_en_stock / Christine Ebernardt / Le langage C++ / CampusPress / Achevé d'imprimer le 11 octobre 2001
2 - développement /Jesse Liberty / C++ / CampusPress / Achevé d'imprimer le 18 janvier 2002
(Pour ce dernier, il y a un CD, avec un fichier dédié Linux, j'ai regardé mais je n'ai pas vraiment vu comment l'exploiter, et je fais toujours attention à ne pas mettre n'importe quoi dans ma machine..)
Merci pour ces renseignements qui m'ont permis d'avancer !

Edit : voici la console  (après MàJ) :

************:~$ sudo apt install buid-essential
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances       
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet buid-essential
**************:~$ 

Edit bis :
Eh... normal, vu qu'il est déjà installé, je viens de le découvrir dans Synaptic....
Comme quoi, on perd parfois des occasions de s'éviter le ridicule...

Dernière modification par Foromus (Le 10/06/2019, à 15:09)

#6 Le 10/06/2019, à 15:10

NicoApi73

Re : Débuter en C++

Foromus a écrit :

En VB comme en Gambas, quand j'ai besoins d'un bouton, je vais le chercher dans la boîte à outil, je le dépose sur la feuille, après, je code son rôle, pareil pour une listbox ou autre. Rien de tel avec C++, je suppose que depuis le temps, ces outils doivent exister dans une bibliothèque quelconque

Il existe différentes bibliothèques pour le c++. Perso, j'utilise Qt et les bibliothèques associées. Cet IDE permet de faire du design (gestion des fenêtres...). Par contre, je te recommande d'apprendre d'abord les bases de la programmation en C++ avant d'utiliser une telle interface.

Hors ligne

#7 Le 10/06/2019, à 15:11

NicoApi73

Re : Débuter en C++

J'ai fait une faute de frappe au #4, c'est build-essential

Hors ligne

#8 Le 10/06/2019, à 17:37

Foromus

Re : Débuter en C++

Eh ... c'est moi qui ai tapé "buid" au lieu de "build"...
Normal que le truc plante... D'autant qu'il est déjà installé.

Pour les bouquins, oui, je me méfie. J'avais un petit truc avec

void main()

ça n'a pas voulu passer à la compil, j'ai remplacé par

int main ()

nom et syntaxe différents, mais ça a marché (après avoir mis le ; qui manquait quelque part...)
Par contre, le fichier

 ./a.out

est bien généré, il se lance bien (en console) il s'exécute normalement, mais pas possible de le récupérer, il est introuvable !
J'ai essayé de faire une recherche via catfish mais ça a monté en mémoire vive (je faisais autre chose pendant la recherche) et du coup, la machine à planté (redémarrage avec Alt+ImpEcran+b).
Dans un de mes livres, ils disent que le fichier compilé et un fichier généralement avec l'extension .obj, mais le livre est plutôt orienté microsoft... Ici, c'est toujours le même

 ./a.out

ou un autre ?
Après, oui, j'ai encore du travail à faire en console, les instructions sont différentes (on retrouve quand même des parentés). Cela dit, après avoir longtemps programmé en graphisme, la console, c'est un peu frustrant quand même...
Bien, j'essaie d'approfondir un peu dans les jours qui suivent !
Je reste sur ma faim avec void et int... De même que je m'interroge sur la présence ou non de l'espace avant les parenthèses.

Merci beaucoup pour toute cette aide, j'apprécie....

#9 Le 10/06/2019, à 20:28

pingouinux

Re : Débuter en C++

Bonsoir,

Foromus #8 a écrit :

./a.out

est bien généré, il se lance bien (en console) il s'exécute normalement, mais pas possible de le récupérer, il est introuvable !

Ce fichier doit se trouver dans le répertoire d'où tu as lancé la compilation.

Tu peux aussi utiliser make. Avec ton fichier exemple.cpp, la commande

make exemple

va générer l'exécutable exemple, à appeler ainsi :

./exemple

Si tu veux compiler le fichier et générer le fichier objet sans créer d'exécutable :

g++ -c exemple.cpp

Le fichier objet va s'appeler exemple.o.

Tu peux ensuite générer l'exécutable à partir de ce dernier

g++ exemple.o

Si tu ne précises rien, ce sera a.out

En ligne

#10 Le 10/06/2019, à 22:17

Foromus

Re : Débuter en C++

pingouinux a écrit :

Tu peux aussi utiliser make. Avec ton fichier exemple.cpp, la commande

make exemple

va générer l'exécutable exemple,

Avec make, ça plante. Aucun fichier généré.

J'ai fini par trouver le fichier a.out, non pas là où il a été compilé mais dans mon répertoire personnel, et en avant-dernier, ce qui m'a probablement induit en erreur, je pensais le trouver en début.
Bon, ce n'est pas obligé que ça se passe exactement pareil d'une machine à l'autre.

#11 Le 11/06/2019, à 06:54

NicoApi73

Re : Débuter en C++

Bonjour,

@pingouinux : pour utiliser make, il faut créer un Makefile :

exemple: exemple.o
	g++ exemple.o -o exemple

clean:
	rm *.o

Hors ligne

#12 Le 11/06/2019, à 07:12

pingouinux

Re : Débuter en C++

NicoApi73 #11 a écrit :

pour utiliser make, il faut créer un Makefile

Il existe des règles par défaut, que l'on peut voir avec cette commande :

make -p -f /dev/null

En ligne

#13 Le 11/06/2019, à 07:25

NicoApi73

Re : Débuter en C++

@pingouinux : Au temps pour moi, effectivement, en précisant la cible (comme tu l'as indiqué au #9) ça fonctionne. Merci pour cette information, je ne le savais pas, j'avais essayé avec make.

Hors ligne

#14 Le 11/06/2019, à 09:18

Foromus

Re : Débuter en C++

Bonjour,

Eh... je fais quoi avec make ?
Comme dit plus haut :
Avec make, ça plante. Aucun fichier généré.

#15 Le 11/06/2019, à 09:26

pingouinux

Re : Débuter en C++

Foromus #14 a écrit :

Avec make, ça plante. Aucun fichier généré.

Si tu montrais la commande que tu as lancée et le message d'erreur, ce serait plus facile…

Il faut, depuis le répertoire où se trouve exemple.cpp, lancer cette commande

make exemple

qui va générer l'exécutable, qui va s'appeler exemple.

En ligne

#16 Le 11/06/2019, à 13:15

Foromus

Re : Débuter en C++

Désolé, je dois faire une mauvaise manip...

Mon mode opératoire :

J'ouvre la console
J'ouvre le gestionnaire de fichiers
Je tape make dans la console, puis espace " "
Je tire (glisser) le fichier adéquat sélectionné (exemple) du gestionnaire dans la console
Je tape "Return"

Finalement, bien que le fichier soit complété par son chemin, ce n'est peut-être pas la bonne formule, il faut peut-être changer de répertoire dans la console avant, et mettre le fichier sans son chemin !
C'est là mon erreur ?

#17 Le 11/06/2019, à 13:41

pingouinux

Re : Débuter en C++

Je viens de tester. Si exemple.cpp est situé dans le sous-répertoire tst, il faut procéder ainsi :

$ make tst/exemple
g++     tst/exemple.cpp   -o tst/exemple

En ligne

#18 Le 11/06/2019, à 14:14

NicoApi73

Re : Débuter en C++

Bonjour,

Foromus a écrit :

J'ouvre la console
J'ouvre le gestionnaire de fichiers
Je tape make dans la console, puis espace " "
Je tire (glisser) le fichier adéquat sélectionné (exemple) du gestionnaire dans la console

Je te déconseille de mélanger la ligne de commande et les outils graphiques sans maitriser ce que tu fais.
La commande suivante ne fonctionne pas :

make exemple.cpp

, que tu indiques le sous-répertoire ou pas

Ouvre un terminal, vas dans le répertoire dans lequel se trouve ton fichier source (exemple.cpp) et fais

make exemple

ou

g++ exemple.cpp

Hors ligne

#19 Le 11/06/2019, à 18:05

Foromus

Re : Débuter en C++

Donc, c'était bien là mon erreur...

Après, mélanger console et application graphique, j'avais pas vraiment l'impression... Voilà des années que je procède ainsi pour amener des fichiers à traiter en console (par le glisser - deposer), et ça c'était toujours bien passé. Il est clair qu'avec C++, je vais devoir prendre des habitudes particulières...

Je vais tester tout à l'heure.

Merci à vous !

#20 Le 12/06/2019, à 11:10

Foromus

Re : Débuter en C++

Bonjour,

Le passage par la console fonctionne, uniquement si j'utilise g++, avec make, ça n'a pas l'air d'aller, malgré que je sois bien passé dans le sous-répertoire contenant le fichier.cpp.
Pas si facile quand on a des habitudes depuis des lustres !
Dans l'un de mes livres, il est proposé de se procurer le VisualC++, super compilateur avec bibliothèques, éditeur de liens et tout et tout. Serait-il raisonnable de chercher et d'installer cette application ? Par ailleurs, le livre me semble assez orienté M$, je ne suis pas certain que cela fonctionne sous xubuntu. Avec le livre, il est livré un CD, et dans lequel est proposé le produit suivant :
Dev-C++ (exécutables et sources), environnement de développement C++,
pour Windows et en version béta pour Linux

Bon, moi, ça me dit pas trop grand chose, d'autant que le truc propose d'installer parallèlement des tas de choses (j'ai retenu du python dans le tas - j'en ai déjà, naturellement), en plus, la version beta, j'hésite un peu, je préférerais, tant qu'à faire, télécharger une version stable, je n'aime pas trop mettre en machine des choses inutiles ou alourdissantes et pas vraiment nécessaires.
Bon, c'est bien de travailler en console, ça permet déjà d'apprendre pas mal de choses, mais à l'ordinaire, je travaille plutôt directement sur l'écran que sur la console. En clair, j'aime bien avoir un exécutable que se lance direct par un double-clic, je trouve cela plus pratique. Même si pour l'instant, ce n'est pas un impératif incontournable, la limitation finit par peser, ne serait-ce que d'une manière inconsciente (les affaires de psychisme, c'est un peu compliqué, comme le c++ quoi, mais en beaucoup plus grand...).
Merci à vous.

#21 Le 12/06/2019, à 11:22

NicoApi73

Re : Débuter en C++

Bonjour,

Visual C++ est un outil Windows, développé par Microsoft. Il ne fonctionnera pas sous linux. C'est un IDE qui fournit également des bibliothèques (pour windonws)

J'utilise 2 IDE sous linux :
- geany : https://doc.ubuntu-fr.org/geany
- Qt : https://doc.ubuntu-fr.org/qt

Pour le premier, il faut passer un peu de temps pour le configurer.

Pour le second, c'est un environnement de développement très complet avec des bibliothèques et un outil de design. Il vaut mieux que tu achètes un bouquin pour l'utiliser efficacement (en particulier pour utiliser les bibliothèques). Pour apprendre le langage C++, je te le déconseille dans un premier temps.

Les bases du langage C++ sont très bien décrites dans le livre de Claude Delannoy. C'est indépendant de l'OS, du compilateur et de l'IDE et ne traite pas l'interface graphique. Les autres bouquins que j'ai sont souvent liés à un IDE (dont Visual Basic).

Hors ligne

#22 Le 12/06/2019, à 11:45

Foromus

Re : Débuter en C++

NicoApi73 a écrit :

Visual C++ est un outil Windows, développé par Microsoft. Il ne fonctionnera pas sous linux. C'est un IDE qui fournit également des bibliothèques (pour windonws)

C'est bien ce que je pensais...

Merci pour l'intérêt porté à ma requête.

Dernière modification par Foromus (Le 14/06/2019, à 08:29)