question bête: compilation
Bonjour à tous.
Voila, j'ai une question super stupide qui va surement vous faire bien rire...
En fait j'essaye de compiler un prog qui utilise la librairie libjpeg.
Plutot que d'installer celle ci avec apt ou autre(dans ce cas je n'ai pas de prob), j'ai préféré utilisé les sources. Autrement dit je télécharge le tgz contenant cette librairie et je veux l'utiliser.
Le repertoire absolu de celle ci est:
/home/rageice/work/perso/libs/jpeg-6b/
Le fichier que je dois insérer dans mon prog est:
jpeglib.h
Donc,
dans mon fichier source il y a: #include <jpeglib.h>
lors de la compilation, j'écris:
gcc -I/home/rageice/work/perso/libs/jpeg-6b/ -c file.c
gcc -I/home/rageice/work/perso/libs/jpeg-6b/ -ljpeglib -o bin file.o
Là on me répond trés poliment:
/usr/bin/ld: ne peut trouver -ljpeglib
Bref, je suis sur que c'est ridicule comme problème mais je trouve pas la réponse donc si quelqu'un peut m'expliquer ce que je dois faire pour utiliser ce jpeglib.h dans mon prog, je lui en serai reconnaissant.
(d'autre part, mais c'est moins important, il ya aussi un libjpeg.a qu'ils disent d'utiliser dans la doc pour simplifier les choses, mais comme je connais rien au linkage et à la compil, si quelqu'un veut bien m'en dire plus sur l'utilisation de ce type de fichier je serais super mega extra joyeux de la life).
Merci d'avoir lu jusqu'ici, c'est long mais je voulais être explicite.
Même problème mais NON résolu
En fait j'ai exactement le même problème.
sur ma débian (pro), il n'y a aucun soucis,
sur mon ubuntu (perso) non plus,
mais sur ma gentoo (machine dédiée ovh),
il ne reconnait pas les références (références indéfinies...)
---------------------------- voici mon makefile :
CC=g++
CPPFLAGS=-W -Wall -ansi -pedantic
LDFLAGS=
COMMUN=/usr/include/naoned/commun/v1.3/
viewer.cgi: viewer.o image.o wrbmp.o rdbmp.o $(COMMUN)function.o $(COMMUN)error.o $(COMMUN)cgi_light.o
$(CC) -o viewer.cgi viewer.o image.o wrbmp.o rdbmp.o $(COMMUN)function.o $(COMMUN)error.o $(COMMUN)cgi_light.o -ljpeg
viewer.o: viewer.cpp
$(CC) -o viewer.o -c -O2 viewer.cpp $(CPPFLAGS)
image.o: image.cpp image.hpp /usr/include/jpeglib.h /usr/include/jversion.h /usr/include/cdjpeg.h
$(CC) -o image.o -c -O2 image.cpp $(CPPFLAGS)
wrbmp.o: wrbmp.c /usr/include/jpeglib.h /usr/include/jversion.h /usr/include/cdjpeg.h
$(CC) -o wrbmp.o -c -O2 wrbmp.c $(CPPFLAGS)
rdbmp.o: rdbmp.c /usr/include/jpeglib.h /usr/include/jversion.h /usr/include/cdjpeg.h
$(CC) -o rdbmp.o -c -O2 rdbmp.c $(CPPFLAGS)
$(COMMUN)function.o: $(COMMUN)function.cpp $(COMMUN)function.hpp
$(CC) -o $(COMMUN)function.o -c -O2 $(COMMUN)function.cpp $(CPPFLAGS)
$(COMMUN)error.o: $(COMMUN)error.cpp $(COMMUN)error.hpp
$(CC) -o $(COMMUN)error.o -c -O2 $(COMMUN)error.cpp $(CPPFLAGS)
$(COMMUN)cgi_light.o: $(COMMUN)cgi_light.cpp $(COMMUN)cgi_light.hpp
$(CC) -o $(COMMUN)cgi_light.o -c -O2 $(COMMUN)cgi_light.cpp $(CPPFLAGS)
clean:
rm -f *.o
----------------------------- et voici le résultat du make :
g++ -o viewer.o -c -O2 viewer.cpp -W -Wall -ansi -pedantic
viewer.cpp: In function `int main()':
viewer.cpp:66: attention : variable � result � inutilis�e
g++ -o image.o -c -O2 image.cpp -W -Wall -ansi -pedantic
image.cpp: In member function `int IMAGE::bmp_to_jpeg()':
image.cpp:308: attention : variable � pszBmpFile � inutilis�e
image.cpp:309: attention : variable � pszJpgFile � inutilis�e
image.cpp: In member function `std::string IMAGE::get_zone(int, int, int, int, float, int)':
image.cpp:437: attention : converting vers � int � � partir de � double �
image.cpp:438: attention : converting vers � int � � partir de � double �
image.cpp:439: attention : converting vers � int � � partir de � double �
image.cpp:522: attention : converting vers � int � � partir de � double �
image.cpp:526: attention : converting vers � int � � partir de � double �
image.cpp:392: attention : � width � pourrait �tre utilis� sans �tre initialis� dans cette fonction
image.cpp:393: attention : � height � pourrait �tre utilis� sans �tre initialis� dans cette fonction
g++ -o wrbmp.o -c -O2 wrbmp.c -W -Wall -ansi -pedantic
wrbmp.c:74: attention : param�tre � rows_supplied � inutilis
wrbmp.c:109: attention : param�tre � rows_supplied � inutilis�
wrbmp.c:143: attention : param�tre � cinfo � inutilis�
wrbmp.c:143: attention : param�tre � dinfo � inutilis�
g++ -o rdbmp.o -c -O2 rdbmp.c -W -Wall -ansi -pedantic
rdbmp.c:413: attention : param�tre � cinfo � inutilis�
rdbmp.c:413: attention : param�tre � sinfo � inutilis�
g++ -o /usr/include/naoned/commun/v1.3/function.o -c -O2 /usr/include/naoned/commun/v1.3/function.cpp -W -Wall -ansi -pedantic
g++ -o /usr/include/naoned/commun/v1.3/error.o -c -O2 /usr/include/naoned/commun/v1.3/error.cpp -W -Wall -ansi -pedantic
g++ -o /usr/include/naoned/commun/v1.3/cgi_light.o -c -O2 /usr/include/naoned/commun/v1.3/cgi_light.cpp -W -Wall -ansi -pedantic
/usr/include/naoned/commun/v1.3/cgi_light.cpp: In member function `void CGI::decode_query()':
/usr/include/naoned/commun/v1.3/cgi_light.cpp:169: attention : variable � time_cpu � inutilis�e
/usr/include/naoned/commun/v1.3/cgi_light.cpp: In member function `void CGI::parse_query()':
/usr/include/naoned/commun/v1.3/cgi_light.cpp:231: attention : variable � time_cpu � inutilis�e
g++ -o viewer.cgi viewer.o image.o wrbmp.o rdbmp.o /usr/include/naoned/commun/v1.3/function.o /usr/include/naoned/commun/v1.3/error.o /usr/include/naoned/commun/v1.3/cgi_light.o -L/usr/lib/ -ljpeg
image.o: dans la fonction � IMAGE::bmp_to_jpeg() �:
image.cpp:(.text+0x24): r�f�rence ind�finie vers � jpeg_std_error(jpeg_error_mgr*) �
image.cpp:(.text+0x44): r�f�rence ind�finie vers � jpeg_CreateCompress(jpeg_compress_struct*, int, unsigned int)�
image.cpp:(.text+0x57): r�f�rence ind�finie vers � jpeg_set_defaults(jpeg_compress_struct*) �
image.cpp:(.text+0xc6): r�f�rence ind�finie vers � jpeg_default_colorspace(jpeg_compress_struct*) �
image.cpp:(.text+0xd2): r�f�rence ind�finie vers � jpeg_stdio_dest(jpeg_compress_struct*, _IO_FILE*) �
image.cpp:(.text+0xe3): r�f�rence ind�finie vers � jpeg_start_compress(jpeg_compress_struct*, int) �
image.cpp:(.text+0x119): r�f�rence ind�finie vers � jpeg_write_scanlines(jpeg_compress_struct*, unsigned char**, unsigned int)�
image.cpp:(.text+0x139): r�f�rence ind�finie vers � jpeg_finish_compress(jpeg_compress_struct*) �
image.cpp:(.text+0x141): r�f�rence ind�finie vers � jpeg_destroy_compress(jpeg_compress_struct*) �
image.o: dans la fonction � IMAGE::getsize() �:
image.cpp:(.text+0x1ce): r�f�rence ind�finie vers � jpeg_std_error(jpeg_error_mgr*) �
image.cpp:(.text+0x1f4): r�f�rence ind�finie vers � jpeg_CreateDecompress(jpeg_decompress_struct*, int, unsigned int)�
image.cpp:(.text+0x219): r�f�rence ind�finie vers � jpeg_stdio_src(jpeg_decompress_struct*, _IO_FILE*) �
image.cpp:(.text+0x22a): r�f�rence ind�finie vers � jpeg_read_header(jpeg_decompress_struct*, int) �
image.o: dans la fonction � IMAGE::jpeg_to_bmp() �:
image.cpp:(.text+0x18b4): r�f�rence ind�finie vers � jpeg_std_error(jpeg_error_mgr*) �
image.cpp:(.text+0x18da): r�f�rence ind�finie vers � jpeg_CreateDecompress(jpeg_decompress_struct*, int, unsigned int)�
image.cpp:(.text+0x194f): r�f�rence ind�finie vers � jpeg_stdio_src(jpeg_decompress_struct*, _IO_FILE*) �
image.cpp:(.text+0x1967): r�f�rence ind�finie vers � jpeg_read_header(jpeg_decompress_struct*, int) �
image.cpp:(.text+0x1aec): r�f�rence ind�finie vers � jpeg_start_decompress(jpeg_decompress_struct*) �
image.cpp:(.text+0x1b29): r�f�rence ind�finie vers � jpeg_read_scanlines(jpeg_decompress_struct*, unsigned char**, unsigned int)�
image.cpp:(.text+0x1c8c): r�f�rence ind�finie vers � jpeg_finish_decompress(jpeg_decompress_struct*) �
image.cpp:(.text+0x1c9a): r�f�rence ind�finie vers � jpeg_destroy_decompress(jpeg_decompress_struct*) �
wrbmp.o: dans la fonction � jinit_write_bmp(jpeg_decompress_struct*, int) �:
wrbmp.c:(.text+0x832): r�f�rence ind�finie vers � jpeg_calc_output_dimensions(jpeg_decompress_struct*) �
collect2: ld a retourn� 1 code d'�tat d'ex�cution
make: *** [viewer.cgi] Erreur 1
Merci pour votre aide...