OVH Cloud OVH Cloud

g++ & glib

5 réponses
Avatar
olric
je cherche a faire un Makefile pr un programme C++ incluant la librairie
glib version 1.2.10, sans succes.

je suis sous linux 2.6.

voici le Makefile:

# -----------------------------------------
BINS = CaraMuch
prefix = /usr/local
bindir = $(prefix)/bin

CC = g++
CFLAGS = -Wall -g
LIBS = -lpthread -lncurses
GLIBS = `pkg-config --cflags --libs glib`

RM = -rm -f
SETOWN = chown -f root:users
SETUID = chmod -f 4750
VIEW = cat
PACK = tar -jcf $(TARFILE) INFO COPYING $(BINS)
PACK2 = tar -jcf $(TARFILE) *.h *.cpp INFO COPYING Makefile

TARFILE = $(BINS).tar.bz2


OBJ = ErrorsUnit.o CaraMuch.o


$(BINS): $(OBJ)
$(CC) $(LIBS) $(GLIBS) $(CFLAGS) -o $(BINS)


ErrorsUnit.o: ErrorsUnit.cpp ErrorsUnit.h

CaraMuch.o: CaraMuch.cpp ErrorsUnit.cpp




all: $(BINS)
# -----------------------------------------



lors de l'execution g++ se comporte comme si la librairie GLIB n'etait
pas incluse :

CaraMuch.cpp:25:18: glib.h : Aucun fichier ou répertoire de ce type




Merci pour l'aide que vous saurez m'apporter :)

5 réponses

Avatar
K. Ahausse
"olric" a écrit dans le message de
news:4176bc13$0$4005$

lors de l'execution g++ se comporte comme si la librairie GLIB n'etait
pas incluse :

CaraMuch.cpp:25:18: glib.h : Aucun fichier ou répertoire de ce type


D'après le libellé de l'erreur, ce n'est pas un problème avec une lirairy,
mais avec un '#include' qui se trouve ligne 25 du source 'CaraMuch.cpp'.

Avatar
Matthieu Moy
"K. Ahausse" writes:

D'après le libellé de l'erreur, ce n'est pas un problème avec une lirairy,
mais avec un '#include' qui se trouve ligne 25 du source 'CaraMuch.cpp'.


A priori, je dirais qu'il manque un -I/chemin/vers/glib dans la ligne
de commande ...

--
Matthieu

Avatar
Benoît Dejean
Le Wed, 20 Oct 2004 21:32:55 +0200, olric a écrit :

je cherche a faire un Makefile pr un programme C++ incluant la librairie
glib version 1.2.10, sans succes.


totalement HS. Il existe des ML de gnome, un forum et des canaux IRC (dont
#gnomefr sur gimp.net)


ouacha c'est vieux ça !

une seule solution

pkg-config --modversion <package>
pkg-config --cflags <package>
pkg-config --libs <package>
pkg-config --list-all

par exemple
pkg-config --modversion glib

si tu ne trouves rien, c'est que ta glib est mal installée.

GLIBS = `pkg-config --cflags --libs glib`


utilise := pour éviter que pkg-config soit appeler à chaque fois que
GLIBS est utilisé.

de plus, sépare dans CFLAGS et LIBS.

Avatar
olric
precisions :


1°) Ma Glib est bien installée
2°) le code source ne presente pas d'erreur

L'erreur se situe bel et bien dans le make :(

En fait, ce qui me serait utile, ce serait de voir d'autres makefiles pr
progs utilisant la Glib.

Ou de la doc à ce sujet.
Avatar
Maxim
olric avait écrit le 20/10/2004 :
je cherche a faire un Makefile pr un programme C++ incluant la librairie glib
[...]

CC = g++


CXX plutôt, pour un compilo C++.


CFLAGS = -Wall -g


Aussi, CXXFLAGS.


En ce qui concerne votre problème :

CXXFLAGS (et CFLAGS) est implicitement utilisée pendant la compilation,
et c'est justement à ce moment qu'il faut préciser les chemins des
includes.

Donc, ça devrait ressembler à ça : CXXFLAGS = -Wall -g `pkg-config
--cflags glib`

--
Maxim
"Danse du loup la queuë entre les iambes."
- proverbe françois