begin process at 2012 05 30 10:42:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

GUI

 > 

utiliser gtk+2.0 avec gcc // probleme avec les options de compilations


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

utiliser gtk+2.0 avec gcc // probleme avec les options de compilations

mardi 1 décembre 2009 à 13:17:26 | utiliser gtk+2.0 avec gcc // probleme avec les options de compilations

FrancoisGauthier

Bonkour,

j'ai un probleme avec mon compilateur (gcc) je voudrai utiliser gtk+2.0; la librairie est installée et correctement liée à l'IDE (NetBeans).

Voici la ligne que j'ai trouvé sur internet:

gcc -o main.c gtkGui $(pkg-config --libs --cflags gtk+-2.0)


Le compilateur me dit qu'il manque un argument après --
Pouvez vous m'aidez?
mardi 1 décembre 2009 à 16:32:25 | Re : utiliser gtk+2.0 avec gcc // probleme avec les options de compilations

TychoBrahe

Salut,

Essaye donc comme ceci :
gcc -o gtkGui main.c `pkg-config --libs --cflags gtk+-2.0`
mardi 1 décembre 2009 à 17:11:22 | Re : utiliser gtk+2.0 avec gcc // probleme avec les options de compilations

FrancoisGauthier

Merci pour ton aide, je bloque une peu là...
J'ai copier ta commande, voilà ce que réponds le compilateur:

make: Warning: Ignoring DistributedMake -o option
Usage : make [ -f makefile ][ -K statefile ]... [ -d ][ -dd ][ -D ][ -DD ]
[ -e ][ -i ][ -k ][ -n ][ -p ][ -P ][ -q ][ -r ][ -s ][ -S ][ -t ]
[ -u ][ -w ][ -V ][ target... ][ macro=value... ][ "macro +=value"... ]
make: Fatal error: Missing argument after `--'
CLEAN FAILED (exit value 1, total time: 74ms)


Je ne sais pas trop comment le prendre....
Si tu peux m'aider
mardi 1 décembre 2009 à 18:19:49 | Re : utiliser gtk+2.0 avec gcc // probleme avec les options de compilations

TychoBrahe

Salut,

Si tu utilises un makefile pour compiler, il serait sans doute plus judicieux de poster son contenu ici.
mardi 1 décembre 2009 à 18:35:51 | Re : utiliser gtk+2.0 avec gcc // probleme avec les options de compilations

FrancoisGauthier

Euh... oui désolé, je connais pas du tout ce système.
J'ai copié/collé ci après tout le fichier, ne connaissant pas les éléments importants... désolé si c'est pas très joli

Make file relatif au projet:

#
# There exist several targets which are by default empty and which can be
# used for execution of your targets. These targets are usually executed
# before and after some main targets. They are:
#
# .build-pre: called before 'build' target
# .build-post: called after 'build' target
# .clean-pre: called before 'clean' target
# .clean-post: called after 'clean' target
# .clobber-pre: called before 'clobber' target
# .clobber-post: called after 'clobber' target
# .all-pre: called before 'all' target
# .all-post: called after 'all' target
# .help-pre: called before 'help' target
# .help-post: called after 'help' target
#
# Targets beginning with '.' are not intended to be called on their own.
#
# Main targets can be executed directly, and they are:
#
# build build a specific configuration
# clean remove built files from a configuration
# clobber remove all built files
# all build all configurations
# help print help mesage
#
# Targets .build-impl, .clean-impl, .clobber-impl, .all-impl, and
# .help-impl are implemented in nbproject/makefile-impl.mk.
#
# Available make variables:
#
# CND_BASEDIR base directory for relative paths
# CND_DISTDIR default top distribution directory (build artifacts)
# CND_BUILDDIR default top build directory (object files, ...)
# CONF name of current configuration
# CND_PLATFORM_${CONF} platform name (current configuration)
# CND_ARTIFACT_DIR_${CONF} directory of build artifact (current configuration)
# CND_ARTIFACT_NAME_${CONF} name of build artifact (current configuration)
# CND_ARTIFACT_PATH_${CONF} path to build artifact (current configuration)
# CND_PACKAGE_DIR_${CONF} directory of package (current configuration)
# CND_PACKAGE_NAME_${CONF} name of package (current configuration)
# CND_PACKAGE_PATH_${CONF} path to package (current configuration)
#
# NOCDDL


# Environment
MKDIR=mkdir
CP=cp
CCADMIN=CCadmin
RANLIB=ranlib


# build
build: .build-post

.build-pre:
# Add your pre 'build' code here...

.build-post: .build-impl
# Add your post 'build' code here...


# clean
clean: .clean-post

.clean-pre:
# Add your pre 'clean' code here...

.clean-post: .clean-impl
# Add your post 'clean' code here...


# clobber
clobber: .clobber-post

.clobber-pre:
# Add your pre 'clobber' code here...

.clobber-post: .clobber-impl
# Add your post 'clobber' code here...


# all
all: .all-post

.all-pre:
# Add your pre 'all' code here...

.all-post: .all-impl
# Add your post 'all' code here...


# help
help: .help-post

.help-pre:
# Add your pre 'help' code here...

.help-post: .help-impl
# Add your post 'help' code here...



# include project implementation makefile
include nbproject/Makefile-impl.mk

# include project make variables
include nbproject/Makefile-variables.mk


Voilà, si tu sais en tirer quelque chose...ben... un Grand Merci!

François
mardi 1 décembre 2009 à 19:03:18 | Re : utiliser gtk+2.0 avec gcc // probleme avec les options de compilations

TychoBrahe

Réponse acceptée !
Et bien il est un peu vide ton makefile, tu ne vas pas vraiment pouvoir faire grand chose avec si tu ne remplis rien ^^ Allez en voici un petit :

Code :
NAME = nom_de_ton_programme
CC = gcc
LD = gcc
CFLAGS = `pkg-config --cflags gtk+-2.0`
LDFLAGS = `pkg-config --libs gtk+-2.0`
SRC = main.c
OBJ = $(SRC:.c=.o)
RM = rf -f

all: $(OBJ)
     $(LD) -o $(NAME) $(OBJ) $(LDFLAGS)

clean:
     $(RM) $(OBJ) $(NAME)

Remplace juste nom_de_ton_programme par le nom de ton programme et main.c par la liste de tes fichiers source. Juste un truc, avoir un seul makefile c'est vraiment pas top si tu as tes sources dans des sous dossiers, si c'est le cas penche toi donc sur les autotools.

Quelques généralité sur le makefile :
On a ici commencé par définir des variables. CC est le compilateur, LD l'éditeur de liens, CFLAGS les options à passer au compilateur, LDFLAGS celels à passer à l'éditeur de lien, SRC la liste des fichiers sources, OBJ est la liste des fichiers objet (ici créé dynamiquement, on indique que c'est la même chose que les fichiers sources mais avec .o comme extension) et enfin RM qui vas nous servir a supprimer des fichiers.
On défini ensuite des règles. La règle all est appelée lorsque l'on tape simplement `make`, c'est le cas le plus courrant, pour appeller une autre règle il faudra faire `make nom_de_la_règle`. Une règle se défini de la manière suivante (les éléments entre crochets étant facultatifs) :
nom_de_la_règle: [liste des dépendances]
[liste des actions à effectuer]
Ainsi notre règle all dépend de $(OBJ), ceci aura pour effet d'appeler automatiquement pour chaque source le compilateur CC avec les CFLAGS en paramètre, et donc de créer les fichiers objet. Ensuite dans la liste des actions de all on a mis la ligne qui permet de réaliser l'édition des liens afin d'obtenir notre exécutable.
Pour ce qui est de la règle clean, elle n'a aucune dépendance. Elle ne fait que supprimer les fichiers objet et l'exécutable généré s'ils existent afin de nettoyer le répertoire.

Bref, maintenant à toi d'adapter en fonction de tes besoins
mardi 1 décembre 2009 à 19:14:14 | Re : utiliser gtk+2.0 avec gcc // probleme avec les options de compilations

FrancoisGauthier

Okay,
merci beaucoup je vais me pencher un peu sur les makefiles...
je ne m'en suis pas servi jusqu'à maintenant, j'ignorai completement qu'il fallait les remplir.
Donc un autotool automatise cette phase?

Bonne soirée,

François
mardi 1 décembre 2009 à 19:48:53 | Re : utiliser gtk+2.0 avec gcc // probleme avec les options de compilations

TychoBrahe

Donc un autotool automatise cette phase?


Oui, mais tu n'échapperas pas à l'écriture d'un fichier de config. Dans le cas d'un petit projet écrire les makefile à la main reste très bien, les autotools c'est plus "usine à gaz".


Cette discussion est classée dans : gcc, probleme, utiliser, gtk, options


Répondre à ce message

Sujets en rapport avec ce message

Gtk avec gcc [ par GoldenEye ] Bonjour à tous.Je suis en trian de passer de VC++ à gccSi qqun pouvait m'indiquer un site de documentation sur la librairie graphique gtk, ce serait t Problème avec GCC [ par Cho7Kipu ] Je réalise actuellement un programme destiné a etre utilisé sous unix, et que je devrais donc compiler avec gcc.Un probleme se pose, vu que gcc ne rec Probleme avec une source [ par flatmax ] salut a tousca fait des jours que j'essaye d'utiliser une classe créé par un membre sur ce site, mais sans succes :(la source se trouve ici :http://ww Probleme avec GTK sous Visual C++ 6 [ par cnarf ] J'ai un probleme lorsque je build un programme utilisant GTK, je n'est pas d'erreur lors de la compilation mais l'etape suivante ne passe pas... Et ca Probleme avec GTK et le code touche [ par Vamps ] Bonjour,En faite je veut en utilisant un switch que le programme reagisse a differente touche, en loccurance ici la touche ENTRER regarder le code :gb Probleme de souris en 1024*768 [ par desteny ] Bonjour !Je suis en train de develloper un modeleur 3D et je dois le faire en 1024*768 et 256 couleur le tout sous borland 5.02 en C (pas de C++), mon Probleme avec GTK sur DevC++ [ par Anysse ] Bonjour, donc voila au faite je viens de telecharger GTK et ce qui va avec pour DevC++ bloodshed 4.9.8.0et il y a une erreur de compilation avec la li Installation de gtk+ de A à Z???? [ par Slown ] Là je commence a en avoir plus que marre! ça fait 2 semaien que je me creuse la tete, que je fouille sur internet afin de trouver coment instaler parr probleme BrowseForFolder [ par Hawk.0013 ] Probleme avec BrowseForFolder bonjour je suis a la recherche d'une boite de dialog pour choisir un repertoire jusque la g trouver BrowseForFolder main Comment on fait pour utiliser la SDL avec GTK+ ?? [ par Rouliann ] Bonjour tout le monde! Malgré mes nombreuses recherches sur le web, je n'ai trouvé aucune information concernant une possible utilisation de la SDL av


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales