undefined reference to `jpeg_std_error(jpeg_error_mgr*)

背景 linux + QT BMP图片转JPG

#include <jpeglib.h>


编译错误:


root@happy-virtual-machine:/home/happy/Lee/Detector2# make
arm-linux-g++ -Wl,-O1 -Wl,-rpath,/opt/qt-4.7.1/lib -o Detector2 main.o mainwindow.o osd.o thread_preview.o preview.o thread_encode.o encode.o rtp.o power.o upload.o moc_mainwindow.o moc_thread_encode.o moc_upload.o    -L/opt/qt-4.7.1/lib -lQtGui -L/usr/local/tslib/lib -L/opt/qt-4.7.1/lib -lQtNetwork -lQtCore -lpthread  
encode.o: In function `Bmp2Jpg(char const*, char const*, int, int)':
encode.cpp:(.text+0x5ac): undefined reference to `jpeg_std_error(jpeg_error_mgr*)'
encode.cpp:(.text+0x5cc): undefined reference to `jpeg_CreateCompress(jpeg_compress_struct*, int, unsigned int)'
encode.cpp:(.text+0x5f0): undefined reference to `jpeg_stdio_dest(jpeg_compress_struct*, _IO_FILE*)'
encode.cpp:(.text+0x610): undefined reference to `jpeg_set_defaults(jpeg_compress_struct*)'
encode.cpp:(.text+0x620): undefined reference to `jpeg_set_quality(jpeg_compress_struct*, int, int)'
encode.cpp:(.text+0x62c): undefined reference to `jpeg_start_compress(jpeg_compress_struct*, int)'
encode.cpp:(.text+0x6d4): undefined reference to `jpeg_write_scanlines(jpeg_compress_struct*, unsigned char**, unsigned int)'
encode.cpp:(.text+0x6dc): undefined reference to `jpeg_finish_compress(jpeg_compress_struct*)'
encode.cpp:(.text+0x738): undefined reference to `jpeg_destroy_compress(jpeg_compress_struct*)'
encode.cpp:(.text+0x7ec): undefined reference to `jpeg_write_scanlines(jpeg_compress_struct*, unsigned char**, unsigned int)'
encode.cpp:(.text+0x7f4): undefined reference to `jpeg_finish_compress(jpeg_compress_struct*)'
encode.cpp:(.text+0x850): undefined reference to `jpeg_destroy_compress(jpeg_compress_struct*)'
collect2: ld returned 1 exit status
make: *** [Detector2] 错误 1


修改

1、MakeFile

LIBS          = $(SUBLIBS)  -L/opt/qt-4.7.1/lib -lQtGui -L/usr/local/tslib/lib -L/opt/qt-4.7.1/lib -lQtNetwork -lQtCore -lpthread -ljpeg 

2、源文件:

extern "C" {
#include <jpeglib.h>
}
用extern "c" 把 jpeg 有关的头文件包含进来


原文地址:https://www.cnblogs.com/whisht/p/3085071.html