Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

deux programmes en c++ à compiler ds un main

7 réponses
Avatar
Joseph KHOURY
Bonjour,



J'ai deux programmes développés en cpp et un fichier .header. je voulais
savoir comment compiler les 3 programmes?

Existe-t-il un makefile sous GNU?


Merci de votre aide

7 réponses

Avatar
drkm
"Joseph KHOURY" writes:

J'ai deux programmes développés en cpp et un fichier .header. je voulais
savoir comment compiler les 3 programmes?

Existe-t-il un makefile sous GNU?
^^^


Le plus simple, en admettant que tu utilise un système GNU :

g++ -o monprog first.cpp second.cpp -Wall -ansi -pedantic

Le plus long : lire un bon bouquin sur le C++, ainsi que la doc de
ton compilo.

--drkm

Avatar
James Kanze
"Joseph KHOURY" writes:

|> J'ai deux programmes développés en cpp et un fichier .header.
|> je voulais savoir comment compiler les 3 programmes?

|> Existe-t-il un makefile sous GNU?

Il existe un programme make sous GNU, et même un très bon. (C'est
celui dont je me sers en standard, indépendamment de la plateforme.)

Je ne suis pas sûr ce que tu veux dire « sous GNU ». Il n'y a
pas de système GNU. Sous Linux, le make de GNU est bundlé, au
moins avec tous les packaging que je connais. Sous Windows, il fait
partie de CygWin, ou tu peux en obtenir les sources et l'installer
toi-même. Sous les autres systèmes, AMHA, il vaut la peine
d'obtenir les sources et l'installer aussi -- c'est un cas où la
version dite libre est nettement supérieur à ces concurrents
commerciels. (Mais sinon, VC++ vient avec un make, qui s'appelle nmake,
et il y a un make bundlé avec tous les systèmes Unix.)

--
James Kanze mailto:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Avatar
James Kanze
drkm writes:

|> "Joseph KHOURY" writes:

|> > J'ai deux programmes développés en cpp et un fichier
|> > .header. je voulais savoir comment compiler les 3 programmes?

|> > Existe-t-il un makefile sous GNU?
|> ^^^

|> Le plus simple, en admettant que tu utilise un système GNU :

C'est quoi, un système « GNU » ?

|> g++ -o monprog first.cpp second.cpp -Wall -ansi -pedantic

Ça ne fait pas tout à fait la même chose. Ou pas du tout la
même chose. Ça marche bien pour deux ou trois .cpp, mais ça ne
s'étend pas bien pour plus. (« It doesn't scale », en anglais.
Je ne suis pas sûr comment on exprimerait ça au mieux en
français.)

|> Le plus long : lire un bon bouquin sur le C++, ainsi que la doc
|> de ton compilo.

Un bouquin sur le C++ risque de ne lui apportait rien, étand donné
que la solution dépend étroitement de l'implémentation.

--
James Kanze mailto:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Avatar
drkm
James Kanze writes:

drkm writes:

|> "Joseph KHOURY" writes:

|> > J'ai deux programmes développés en cpp et un fichier
|> > .header. je voulais savoir comment compiler les 3 programmes?

|> > Existe-t-il un makefile sous GNU?
|> ^^^

|> Le plus simple, en admettant que tu utilise un système GNU :

C'est quoi, un système « GNU » ?


Je ne sais pas s'il s'agit de l'expression consacrée, mais j'entend
par là un système composé d'outils de chez GNU, ou de GNU/Linux. Par
abus de langage, je voulais dire « que tu dispose des outils de
compilation GNU ».

|> g++ -o monprog first.cpp second.cpp -Wall -ansi -pedantic

Ça ne fait pas tout à fait la même chose. Ou pas du tout la
même chose. Ça marche bien pour deux ou trois .cpp, mais ça ne
s'étend pas bien pour plus. (« It doesn't scale », en anglais.
Je ne suis pas sûr comment on exprimerait ça au mieux en
français.)


C'était une réponse simple. D'après la formulation de la question
du PO, j'ai pensé qu'il ne connait pas grand-chose à C++ (« développé
en cpp », « fichier .header », « les 3 programmes »). C'est la ligne
de compilation basique [*], ne nécessitant pas de parler de
bibliothèques, d'édition de liens ou d'unités de compilation. Si cela
ne marche pas, il est toujours temps pour le PO de revenir avec les
diagnostiques du compilo.

[*] Hum, je sais, ça ne veut pas dire grand-chose :-(

Peut-être aurais-je dû me contenter de demander plus d'infos au PO.

|> Le plus long : lire un bon bouquin sur le C++, ainsi que la doc
|> de ton compilo.

Un bouquin sur le C++ risque de ne lui apportait rien, étand donné
que la solution dépend étroitement de l'implémentation.


Encore une fois, j'ai pensé (peut-être à tord) que les connaissances
C++ du PO étaient fort minces pour comprendre une doc de compilo.
D'où la mention de ces deux types de documents.

Mais il est vrai que j'ai peut être été un peu vite. Sans doute
nous éclairera-t-il à ce sujet.

--drkm

Avatar
drkm
James Kanze writes:

Je ne suis pas sûr ce que tu veux dire « sous GNU ». Il n'y a
pas de système GNU.


Je pensais que c'était l'appellation d'un système composé
exclusivement d'outils GNU, dont le Hurd, et par abus de langage d'un
GNU/Linux.

Sous Linux, le make de GNU est bundlé, au


Qu'entend-tu par là ?

moins avec tous les packaging que je connais. Sous Windows, il fait
partie de CygWin, ou tu peux en obtenir les sources et l'installer
toi-même. Sous les autres systèmes, AMHA, il vaut la peine
d'obtenir les sources et l'installer aussi


Yep.

--drkm

Avatar
James Kanze
drkm writes:

|> James Kanze writes:
|>
|> > drkm writes:
|>
|> > |> "Joseph KHOURY" writes:

|> > |> > J'ai deux programmes développés en cpp et un fichier
|> > |> > .header. je voulais savoir comment compiler les 3
|> > |> > programmes?

|> > |> > Existe-t-il un makefile sous GNU?

|> > |> Le plus simple, en admettant que tu utilise un système GNU :

|> > C'est quoi, un système « GNU » ?

|> Je ne sais pas s'il s'agit de l'expression consacrée, mais
|> j'entend par là un système composé d'outils de chez GNU, ou
|> de GNU/Linux. Par abus de langage, je voulais dire « que tu
|> dispose des outils de compilation GNU ».

Si j'ai installé les outils GNU sous Solaris, mais je me sers de Sun
CC, c'est un système GNU ? Si je travaille sous Linux, mais avec le
compilateur Comeau, c'est un système GNU ? Ou est-ce qu'on se limite
à g++ sous Linux ?

|> > |> g++ -o monprog first.cpp second.cpp -Wall -ansi -pedantic

|> > Ça ne fait pas tout à fait la même chose. Ou pas du tout
|> > la même chose. Ça marche bien pour deux ou trois .cpp, mais
|> > ça ne s'étend pas bien pour plus. (« It doesn't scale
|> > », en anglais. Je ne suis pas sûr comment on exprimerait
|> > ça au mieux en français.)

|> C'était une réponse simple.

Tout à fait. Le but de ma réponse, c'était bien de signaler sa
simplicité, non de dire que ta réponse était fausse en soi.

|> D'après la formulation de la question du PO, j'ai pensé qu'il
|> ne connait pas grand-chose à C++ (« développé en
|> cpp », « fichier .header », « les 3 programmes »).

C'est vrai. Mais de l'autre part, il a parlé de fichier make. Je
croyais donc qu'un complément s'imposait.

--
James Kanze mailto:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Avatar
James Kanze
drkm writes:

|> James Kanze writes:

|> > Je ne suis pas sûr ce que tu veux dire « sous GNU ». Il
|> > n'y a pas de système GNU.

|> Je pensais que c'était l'appellation d'un système composé
|> exclusivement d'outils GNU, dont le Hurd, et par abus de langage
|> d'un GNU/Linux.

En somme, un système rarissime. C'est pourquoi j'ai posé la
question.

|> > Sous Linux, le make de GNU est bundlé, au

|> Qu'entend-tu par là ?

Que le programme make se trouve sur les CD quand tu l'achètes ; tu
n'as pas besoin d'acheter un CD supplémentaire, ou télécharger
un programme de plus.

--
James Kanze mailto:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93