utiliser des librairies dans dev c - C - Programmation
Marsh Posté le 03-11-2005 à 20:27:15
ReplyMarsh Posté le 03-11-2005 à 20:31:32
Elmoricq a écrit : Ca sent le -lnom_de_la_lib_qui_va_bien manquant, on dirait. |
ou ou ou c'est qu'il manque?
Marsh Posté le 03-11-2005 à 20:36:26
Dans les paramètres de la compilation je dirais. Montre-voir comment tu compiles ?
Marsh Posté le 03-11-2005 à 20:41:43
Elmoricq a écrit : Dans les paramètres de la compilation je dirais. Montre-voir comment tu compiles ? |
ah, tu veux sans doute parler du fameux fichier makefile que comme c'est dev c qui le genere etque je sais pas quoi lui dire je l'ai pas touché (ya pa tout ca en java , nom de ... )
Marsh Posté le 03-11-2005 à 20:42:42
voila :
#####################################
# #
# Makefile for Project 1
# Generated by Bloodshed Dev-C++ #
# #
#####################################
# Compiler
CC=g++
# Parameters given to the compiler
CFLAGS=-s -IC:\DEV-C_~1\Include\ -IC:\PROGRA~1\GnuWin32\include -IC:\DEV-C_~1\Include\G__~1 -IC:\DEV-C_~1\Include\ -IC:\PROGRA~1\GnuWin32\include -LC:\DEV-C_~1\Lib\ -LC:\PROGRA~1\GnuWin32\lib\ -BC:\DEV-C_~1\Bin\
# Output filename (*.exe)
OUTPUT="Project 1.exe"
# Source files
SRCS="D:\stuffs temps\hello.cpp"
# Output object files (*.o)
OBJS="D:\stuffs temps\hello.o" "D:\stuffs temps\rsrc.o"
# Standard targets
all: compile_res
$(CC) -c $(SRCS) $(CFLAGS)
$(CC) -o $(OUTPUT) $(OBJS) $(CFLAGS)
compile_res:
windres --include-dir C:\DEV-C_~1\Include\ --include-dir C:\PROGRA~1\GnuWin32\include --include-dir C:\DEV-C_~1\Include\G__~1 --include-dir C:\DEV-C_~1\Include\ --include-dir C:\PROGRA~1\GnuWin32\include --use-temp-file -I rc -O coff -i "D:\STUFFS~1\rsrc.rc" -o "D:\STUFFS~1\rsrc.o"
test: all
./$(OUTPUT)
clean:
del *.o
mrproper: clean
Marsh Posté le 03-11-2005 à 20:48:11
Bingo.
Doc de la lib GSL :
http://www.gnu.org/software/gsl
Et plus exactement la partie "compiling & linking" :
http://www.gnu.org/software/gsl/ma [...] html#SEC11
Dans la partie "CFLAGS" de ton makefile, ajoute :
-lgsl |
Marsh Posté le 03-11-2005 à 20:53:23
Elmoricq a écrit : Bingo.
|
Ben ouais mais comme tout ca c'était sous linux je me demandais si ca s'appliquait aussi sous zindoze.
Mais c'est normal que ca s'ajoute pas quand dev c genere le fichier? en fait il fait le meme makefile pour tout les progs ou quoi?
Marsh Posté le 03-11-2005 à 20:54:23
Du caca dans l tuyau a écrit : en fait il fait le meme makefile pour tout les progs ou quoi? |
C'est ce que je dirais : les options de compilation sont minimalistes.
Par contre me semble qu'on peut ajouter des options via l'interface ce qui permet de ne pas se taper l'édition manuelle du makefile.
Marsh Posté le 03-11-2005 à 20:59:05
je retrouve pas la ligne
$ gcc -L/usr/local/lib example.o -lgsl -lgslcblas -lm
c'est normal? je suppose que c'est ce -lgsl qui manque?
Marsh Posté le 03-11-2005 à 21:01:51
Euh, cette ligne dans la documentation, c'est juste un exemple, hein.
Marsh Posté le 03-11-2005 à 21:02:54
ben je m'en doutais mais il faut que je mette le bon chemin et c'est bon non ? je sais je suis tres nul ...
Marsh Posté le 03-11-2005 à 21:08:00
arr me lache pas... j'agonise..
stplait copie la ligne originale et mets la modification je suis paumé
Marsh Posté le 03-11-2005 à 21:12:31
ReplyMarsh Posté le 03-11-2005 à 21:12:31
c'est pas comme ca:
CFLAGS=-s -lgsl -IC:\DEV-C_~1\Include\ -IC:\PROGRA~1\GnuWin32\include -IC:\DEV-C_~1\Include\G__~1 -IC:\DEV-C_~1\Include\ -IC:\PROGRA~1\GnuWin32\include -LC:\DEV-C_~1\Lib\ -LC:\PROGRA~1\GnuWin32\lib\ -BC:\DEV-C_~1\Bin\
?
Marsh Posté le 03-11-2005 à 21:14:10
ReplyMarsh Posté le 03-11-2005 à 21:21:44
bon; c'est trop idiot pour que quelqu'un me réponde? dites moi la vérité , je suis prêt a tout entendre.
Les lignes qui sont décrites sur le site ont rien a voir avec mon fichier.
C'est vital j'ai un tp a rendre pour avant hier ayez pitié
Marsh Posté le 03-11-2005 à 21:45:48
bon .... j'ai du faire rigoler pas mal de monde, au vu du nombre de "lu". Maintenant je monologue patiemment en croyant toujours un peu qu'une bonne ame e guidera vers les lumières du .exe ...
Marsh Posté le 03-11-2005 à 21:57:38
Personnellement, j'ai la flemme de me taper la documentation de GSL à 22h après une journée de boulot intensif.
Quant aux options de compilation, édite plutôt ça dans l'interface de dev-cpp (outils => options du compilateur, et ajoute "-lgsl" dans la partie "édition de lien" ).
Marsh Posté le 03-11-2005 à 21:59:38
http://forum.hardware.fr/forum2.ph [...] 544&cat=10
section [07]
Marsh Posté le 03-11-2005 à 22:07:44
Elmoricq a écrit : Personnellement, j'ai la flemme de me taper la documentation de GSL à 22h après une journée de boulot intensif. |
aie , je dois pas avoir a meme version, il a juste "tool configuration" dans "tool" qui ne soit pas une fenetre ou un package ou setup creator... bon c'est pas grave merci quand meme.
Marsh Posté le 03-11-2005 à 22:17:04
a ben c'est bon, tu me sauve la vie. Ya tout ce qu'il me fallait merci.
C'est parcque je suppose que le problème est primaire et résolvable par toute personne qui a eu au moins quelques cours en c alors quand je vois que plein de gens on lu ce topic c'est pour ca que je m'impatientait un peu enfin c'est pas grave.
Marsh Posté le 03-11-2005 à 22:31:42
au fait, pour des gens qui pourraient m'aider, le précédent message, c'est une blague, je cherche toujours. ...Merci...
Marsh Posté le 03-11-2005 à 22:50:27
En grève
Je refuse de répondre à un pseudo aussi crade...
Marsh Posté le 03-11-2005 à 23:08:10
Emmanuel Delahaye a écrit : En grève |
oooaaa faut rigoler.
Bon, clairement, si j'ai bien compris il faut que je debrouille.
Marsh Posté le 04-11-2005 à 00:01:45
Emmanuel Delahaye a écrit : En grève |
y'a le pseudo, mais y'a aussi la citation que je trouve particulièrement dégueulasse
Marsh Posté le 04-11-2005 à 16:26:14
Harkonnen a écrit : y'a le pseudo, mais y'a aussi la citation que je trouve particulièrement dégueulasse |
Pour ceux qui ont vu "c'est arrivé près de chez vous" ca n'a rien de dégueulasse mais ca tu peux pas comprendre je suppose...
Marsh Posté le 04-11-2005 à 16:30:17
Dans "C'est arrivé près de chez vous", il y a tout un contexte qui est établi, et qui ne se retrouve pas dans une citation du forum.
Marsh Posté le 04-11-2005 à 16:41:57
Harkonnen a écrit : y'a le pseudo, mais y'a aussi la citation que je trouve particulièrement dégueulasse |
http://forum.hardware.fr/forum2.ph [...] 544&cat=10
section [09]
Marsh Posté le 04-11-2005 à 20:40:45
Du caca dans l tuyau a écrit : C'est parcque je suppose que le problème est primaire et résolvable par toute personne qui a eu au moins quelques cours en c alors quand je vois que plein de gens on lu ce topic c'est pour ca que je m'impatientait un peu enfin c'est pas grave. |
Ce n'est pas un probleme de C, c'est un probleme d'utilisation de dev c. Il y a plein de gens tres competents en C mais qui ne connaissent pas dev c (moi par exemple).
Marsh Posté le 03-11-2005 à 20:19:56
Je voudrais me servir des fonctions d'une librairie scientifique pour un tp: la GSL. Pourrait-on m'indiquer de manière simple et pas a pas tout ce qu'il faut faire sous dev c pour que la compilation se passe bien? U "helloworld" fonctionne mais des que je veux utiliser la bibliotheque, il me met 0 errors et taille du fichier output 0.
programme utilisé (copié collé du manuel gsl):
#include <stdio.h>
#include <gsl/gsl_qrng.h>
int
main (void)
{
int i;
gsl_qrng * q = gsl_qrng_alloc (gsl_qrng_sobol, 2);
for (i = 0; i < 1024; i++)
{
double v[2];
gsl_qrng_get (q, v);
printf ("%.5f %.5f\n", v[0], v[1]);
}
gsl_qrng_free (q);
return 0;
}
erreurs de compilation:
d:\stuffs temps\hello.o(.text+0x25):hello.cpp: undefined reference to `gsl_qrng_sobol'
d:\stuffs temps\hello.o(.text+0x2b):hello.cpp: undefined reference to `gsl_qrng_alloc'
d:\stuffs temps\hello.o(.text+0x5c):hello.cpp: undefined reference to `gsl_qrng_get'
d:\stuffs temps\hello.o(.text+0x98):hello.cpp: undefined reference to `gsl_qrng_free'
j'ai pourtant ajouter les repertoires "lib" et "include" dans les parametres du compilateur:
C:\Dev-C++\Include\;C:\Program Files\GnuWin32\include
C:\Dev-C++\Include\G++;C:\Dev-C++\Include\;C:\Program Files\GnuWin32\include
C:\Dev-C++\Lib\;C:\Program Files\GnuWin32\lib\
si j'ajoute le repertoire "bin" aussi ca plante mais e pense que c'est normal...
J'ai chercher en vain des tutoriaux expliquant comment faire (peut etre je sais pas chercher aussi.. c'est vous qui me direz)