C/C++ avec gcc et les Makefiles

C/C++ avec gcc et les Makefiles - Programmation

Marsh Posté le 09-08-2002 à 20:42:24    

Salut,
 
 
J'aimerai comment fonctionne les Makefiles, configure, et autres install.sh
Du moins comment les générer (quel outil, je me démerde ensuite)
 
 
encore une question, comment utiliser cin et cout (iostream.h)
si je compile j'ai :
 
 

Code :
  1. [root@totipotentes client_serveur]# gcc client_serveur.cpp
  2. /tmp/ccYyg0LJ.o: In function `main':
  3. /tmp/ccYyg0LJ.o(.text+0xc16): undefined reference to `flush(ostream &)'
  4. /tmp/ccYyg0LJ.o(.text+0xc1b): undefined reference to `cout'
  5. /tmp/ccYyg0LJ.o(.text+0xc20): undefined reference to
  6. `ostream::operator<<(ostream &(*)(ostream &))'
  7. /tmp/ccYyg0LJ.o(.text+0xc30): undefined reference to `cout'
  8. /tmp/ccYyg0LJ.o(.text+0xc35): undefined reference to `ostream::operator<<(char
  9. const *)'
  10. collect2: ld returned 1 exit status


 
 
Merci :hello:


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 09-08-2002 à 20:42:24   

Reply

Marsh Posté le 09-08-2002 à 20:48:49    

salut
 
fais des recherches sur automake, autoconf, ce
n'est pas tres compliqué, les 2 fichiers à éditer
étant le makefile.am relatif a chaque rep et le configure.in, script qui si tu le veux te permet de savoir si des libs sont
présentes ou non, entre autre...

Reply

Marsh Posté le 09-08-2002 à 21:12:48    

djkurgan a écrit a écrit :

salut
 
fais des recherches sur automake, autoconf, ce
n'est pas tres compliqué, les 2 fichiers à éditer
étant le makefile.am relatif a chaque rep et le configure.in, script qui si tu le veux te permet de savoir si des libs sont
présentes ou non, entre autre...




 
salut,
 
emrci, ou puis-je trouver des infos à propos de ces commandes. J'ai pas trouvé sur www.freenix.fr
 
Et pour iostream ???
 
Merci


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 09-08-2002 à 21:39:18    

#include <iostream.h>
c'est dans l'ancienne norme de C++
 
désormais il faut utiliser
#include <iostream>
 
sans le .h comme pour les autres classes de la lib C++ :
ex :
#include <string>
#include <list>
ca permet de ne pas confondre avec le C (genre #include <string.h> )
 
et préciser le namespace :
using namespace std;
 
ensuite avec gcc pour compiler du C++ tu fais :
 
g++ source.cpp -lstdc++ -o binaire.out
 
pour un Makefile un truc du genre :
 
CPP = g++
 
CXXFLAGS = -g -Wall -ansi -pedantic
LIBS = -lstdc++
 
OBJS = source1.o source2.o source3.o \
        source4.o
 
binaire.out : $(OBJS)
        $(CPP) $(CXXFLAGS) -o $(@) $(OBJS) $(LIBS)
 
clean :
        rm -f binaire.out *.o core *.core
 
 
attention aux tabulations !
 
ca devrais aller, y'a surement des conneries et des trucs nuls parceque je le tape en live, et puis je déteste les Makefile : c'est archaïque


Message édité par tanguy le 09-08-2002 à 21:40:28
Reply

Marsh Posté le 09-08-2002 à 21:51:19    

tanguy a écrit a écrit :

#include <iostream.h>
c'est dans l'ancienne norme de C++
 
désormais il faut utiliser
#include <iostream>
 
sans le .h comme pour les autres classes de la lib C++ :
ex :
#include <string>
#include <list>
ca permet de ne pas confondre avec le C (genre #include <string.h> )
 
et préciser le namespace :
using namespace std;
 
ensuite avec gcc pour compiler du C++ tu fais :
 
g++ source.cpp -lstdc++ -o binaire.out
 
pour un Makefile un truc du genre :
 
CPP = g++
 
CXXFLAGS = -g -Wall -ansi -pedantic
LIBS = -lstdc++
 
OBJS = source1.o source2.o source3.o \
        source4.o
 
binaire.out : $(OBJS)
        $(CPP) $(CXXFLAGS) -o $(@) $(OBJS) $(LIBS)
 
clean :
        rm -f binaire.out *.o core *.core
 
 
attention aux tabulations !
 
ca devrais aller, y'a surement des conneries et des trucs nuls parceque je le tape en live, et puis je déteste les Makefile : c'est archaïque




 
Merci !!!
 
Et tu propose quoi en remplacement des Makefile ?
 
merci encore à vous


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 09-08-2002 à 22:12:00    

juju_le_barbare a écrit a écrit :

 
Et tu propose quoi en remplacement des Makefile ?




 
Ant (non, pas antp !)


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 09-08-2002 à 22:25:38    

juju_le_barbare a écrit a écrit :

 
Et tu propose quoi en remplacement des Makefile ?




 
Les Makefile ca date de perpette, et ca fait chier tout le monde.
passer du temps à maintenir des Makefile c'est vraiment chiant.
et les Makefile y'a pas 2 personnes qui les écrivent pareil.
 
m'enfin si c'est juste pour 3 pauv cpp c'est pas ca qui est génant, te fais pas chier avec des questions existencielles et fait un simple Makefile.
 
 
pour info
 
y'a qmake qui est multiplateforme et simple : http://trolltech.com
je l'utilise avec Qt
 
ant, c'est un truc avec des fichiers XML programmé en Java
jamais utilisé, mais c'est surement de très bonne qualité
 
et puis bien sur autoconf/automake
c'est puissant mais lire un bouquin pour simplement compiler un projet... faut quand meme garder du temps pour le coder le programme :)
 
et enfin tous les trucs plus ou moins proprios qui viennent avec les IDE, mais en général c'est pas assez souple.
Par exemple tu veux tester des parties de ton programme uniquement (parcequ'il est gros et donc trop lent à compiler et débugguer) et donc compiler qu'une partie avec des classes de test, ba t'es comme un con.
 
Au final tu te refais à moitié ton système de compilation avec des scripts et des bouts de Makefile.

Reply

Marsh Posté le 09-08-2002 à 22:57:48    

Salut,
 
J'ai qmake donc je vais voir ce qu'il a dans le ventre.
 
Une autre question.
Je désire faire des programmes visuels sous X, je sais qu'il faut inclure une librairie (du style #include <GTK.h> ), et ensuite utiliser les propriétés des classes contenues dedans (pour la taille positon, etc... des fenêtres, mais où trouver une documentation fournie, mais pas trop que je puisse imprimer (du style 100/150 pages)
 
merci (mais je vais chercher car j'avoue ne pas avoir cherché)


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 10-08-2002 à 00:25:22    

Je ne suis pas vraiment d'accord, les makefile sont
tjrs d'actualité....ceux qui trouve que c'est chiant
sont également ceux qui ne les maitrisent pas,
surtout pour des gars qui bossent sur des unix...
 
enfin, je suis quand meme d'accord sur le faite
qu'automake et autoconf sont pour des projets qui contiennent
plus de 3 fichiers ;).
 
par contre pour celui qui a un peu l'habitude des scripts, qqs
fiches d'explications et c'est bon, pas besoin d'un bouquin, un cerveau suffit, en 3 soirs j'avais bien compris les concepts
et syntaxes et ts mes 'gros' projet, je les geres avec ca.
 
faut voir que les tarball récupéré sur le net font intervenir automake et autoconf.
mais bon un windowzien n'a pas, je pense, cette methodologie de travail mais sous linux ou solaris ce n'est pas la meme philo.
 
une rapide recherche sur google..
 
http://www-igm.univ-mlv.fr/~dr/XPOSE/Breugnot/
 
voila a+

Reply

Marsh Posté le 10-08-2002 à 02:29:41    

djkurgan a écrit a écrit :

les makefile sont
tjrs d'actualité....ceux qui trouve que c'est chiant
sont également ceux qui ne les maitrisent pas




 
:sarcastic:
 
- la syntaxe est pourris
- y'a 36 mille facon de les faire
- c'est pas portable
 
moi je veux un truc élégant :
- une syntaxe claire et précise pour une maintenance aisée
- une seule et unique facon de le faire
- portabilité, indépendance vis à vis de l'environnement
- et pourquoi pas des outils de haut niveau pour la maintenance qui permettent de finir plus tôt mon boulot !
 
l'avantage des Makefile c'est que c'est dispo sur tous les UNIX, ca marche depuis perpette et ca marchera encore dans 10 ans.
 
j'ai pas envie de perdre mon temps pour mettre en place et maintenir des Makefile, j'en ai rien à foutre
ca me rapport pas une tune, je préfère coder -> ca rapporte, c'est plus interessant et gratifiant : j'ai des priorités dans la vie.
 
libre aux autres de se branler devant la page info de make, de savoir s'il faut foutre des tabulations ou des espaces, s'il faut des ( ou des {, s'il faut faire comme dans la doc A ou comme dans la doc B parceque c'est différent...
moi j'ai passé l'âge
 
ca n'a rien à voir avec la capacité intellectuelle : il s'agit de critiquer la compléxité d'un outil par rapport à la tâche qu'il réalise.
 
on parle d'une chose simple : compiler un programme, et ca doit le rester ./

Reply

Marsh Posté le 10-08-2002 à 02:29:41   

Reply

Marsh Posté le 10-08-2002 à 14:22:39    

Bah écoute, y'a pas plus débile qu'automake et autoconf,
j'enfile ts mes fichiers ds le makefile.am, ayant parametre
le reste au paravent je ne m'en soucis pas, en tout 10 secondes... hyper dur!!!  
 
en ce qui me concerne windows, c'est le cadet de mes soucis, surtout que c'est windows qui pose pb ds l'histoire...,  
no pb ss deb, mdk, rdh, bsd ou solaris.
 
bref une fois qu'on a bien paramétré, ca roule et ca va tres vite...alors syntaxe pourris, c'est faux, le principe est tjs
le meme et tu as oublié de préciser pas portable "ss windows"
 
en tout cas vous faites ce que vous voulez, on peut tjrs améliorer les choses...mais pour moi, ca marche bien, pratique et rapide, et mon temps je le passe tjrs à coder mon appli....
 
enfin, on va pas s'énerver sur ca...on est d'accord
 
a+

Reply

Marsh Posté le 10-08-2002 à 14:25:49    

djkurgan a écrit a écrit :

y'a pas plus débile qu'automake et autoconf




je t'ai quoté sur ta citation sur les Makefile pas autoconf/automake qui est une surcouche
 
et tout ce que j'ai dit se rapporte au Makefile

Reply

Marsh Posté le 10-08-2002 à 14:33:03    

ok, Makefile "pur" je suis ok pour dire que c'est galere pour
des projets balezes par contre automake/autoconf sont des outils
super pratiques (pour ma part) :)

Reply

Marsh Posté le 10-08-2002 à 14:34:43    

kadreg a écrit a écrit :

 
 
Ant (non, pas antp !)




 
 [:cupra]


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

Marsh Posté le 10-08-2002 à 14:41:22    

juju_le_barbare a écrit a écrit :

Salut,
Une autre question.
Je désire faire des programmes visuels sous X, je sais qu'il faut inclure une librairie (du style #include <GTK.h> ), et ensuite utiliser les propriétés des classes contenues dedans (pour la taille positon, etc... des fenêtres, mais où trouver une documentation fournie, mais pas trop que je puisse imprimer (du style 100/150 pages)




gtk c'est une librairie graphique pour programmer en C qui est très bien faite
je l'utilise tous les jours mais malheureusement la doc est très très très limité !!
si tu veux programmer en C uniquement, vas-y fonce, c'est la meilleure lib graphique en C à ma connaissance.
http://gtk.org
 
 
en revanche si tu fais du C++, je te conseille Qt qui est documenté de facon exemplaire et qui est très puissante et facile. http://doc.trolltech.com
 
moi je dois faire du gtk avec un soft en C++ et c'est vraiment galère comparé à Qt :(

Reply

Marsh Posté le 10-08-2002 à 19:13:49    

tanguy a écrit a écrit :

 
gtk c'est une librairie graphique pour programmer en C qui est très bien faite
je l'utilise tous les jours mais malheureusement la doc est très très très limité !!
si tu veux programmer en C uniquement, vas-y fonce, c'est la meilleure lib graphique en C à ma connaissance.
http://gtk.org
 
 
en revanche si tu fais du C++, je te conseille Qt qui est documenté de facon exemplaire et qui est très puissante et facile. http://doc.trolltech.com
 
moi je dois faire du gtk avec un soft en C++ et c'est vraiment galère comparé à Qt :(




 
Salut,
 
Je programme en C++ donc c'et Qt qui me convient, mais dans l'aide (que je D/L et n'ai pas lue) je vois 'Buy Qt' :(
C'est payant ?
Ou bien il existe une version gratuite light ?
 
Je vais chercher ;)
 
Merci, @++


---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 10-08-2002 à 19:17:19    

juju_le_barbare a écrit a écrit :

 
Ou bien il existe une version gratuite light ?




 
Non, il y a une version gratuite complête (sous unix et sous license GPL)
 
PS: on ne travaille pas en root


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 10-08-2002 à 19:32:57    

kadreg a écrit a écrit :

 
 
Non, il y a une version gratuite complête (sous unix et sous license GPL)
 
PS: on ne travaille pas en root




 
Salut,
 
Oui j'ai vu pour la version complète, mais alors pourquoi les entreprises achètes les éditions 'pro' et 'entreprise' ???
 
Et sinon, je travaille et vis sous root (oui oui je vis sur pc ;)
Je n'ai trouvé aucun argument assez fort pour m'en décourager, de plus je déteste m'imposer des restrictions  :gun:  
 
Ca ne m'a jamais fait de tort !!!
Jamais !
Dans le pire des cas je réinstalle mon image Linux en 20 minutes et basta !
 
Puis il suffit de faire gaffe !
Ca me fait penser aux windowsiens qui fdisent que l'antivirus est OBLIGATOIRE !!!
Lorsque j'étais sous cet OS (j'y suis resté longtemps), je n'ai jamais mis d'anti virus, et je ne l'ai jamais regretté !
 
Merci  :hello:


Message édité par juju_le_barbare le 10-08-2002 à 19:36:40

---------------
Visitez mon site : http://www.jujubarbare.linux-fan.com
Reply

Marsh Posté le 10-08-2002 à 20:18:30    

juju_le_barbare a écrit a écrit :

 
Oui j'ai vu pour la version complète, mais alors pourquoi les entreprises achètes les éditions 'pro' et 'entreprise' ???




parceque le version gratuite complète sous UNIX est sous double licence GPL / QPL
Ces 2 licences ne permettent pas de distribuer un soft sans ses sources.
 
En général les entreprises préfèrent ne pas donner les sources, donc elles payent la license adéquate qui leurs permet de conserver les sources secretes.
 
gtk est sous licence LGPL (un dérivé de la GPL) et ne pose pas se "problème"
 
en gros tout ce qu'il faut comprendre c'est :
- tu fais tu soft opensource, pas de problème c'est gratuit
- tu veux faire du soft propriétaire, ba tu payes, ca permet à Trolltech de vivre et de continuer le développement de Qt.

Reply

Sujets relatifs:

Leave a Replay

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