Я загрузил и установил пакет libjpeg для Dev C++. Я гарантировал, что это самая последняя версия. Затем я добавил соответствующие библиотеки в Dev C++:
Инструменты> Компилятор> Каталоги У меня также есть набор компиляторов для TDM-GCC 4.8.1 64-разрядная версия
Что я добавил: Bin: Dev-Cpp\bin
Библиотеки: Dev-Cpp\lib
C Включает: Dev-Cpp\include
C++ Включает: Dev-Cpp\include
Я также добавил ссылку в параметры проекта Linker: Dev-Cpp/lib/libjpeg.a
Мой код:
#include <iostream>
#include <cstdlib>
#include <cstdio>
extern "C" {
#include <jpeglib.h>
#include <jerror.h>
}
int main(void)
{
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
cinfo.err = jpeg_std_error(& jerr);
jpeg_create_decompress(& cinfo);
return 0;
}
Я получаю ошибки:
D:\FP\main.o In function 'main':
14 D:\FP\main.cpp undefined reference to 'jpeg_std_error'
15 D:\FP\main.cpp undefined reference to 'jpeg_CreateDecompress'
...
Я просмотрел этот пост, который кажется актуальным, но я не знаю, как применить его к C++. На этом форуме, с которым я связан, проблема была как-то решена, когда комментатор сказал OP указать, какой компилятор был использован для библиотеки. Т.е. GCC для C и G++ для C++. Я получаю те же ошибки, что и он, поэтому я думаю, что это связано, но я не уверен, как его перенастроить.
Я посмотрел сообщение:
Что такое неопределенная ссылка/неразрешенная ошибка внешнего символа и как ее исправить?
Но это не отвечает на мой вопрос, так как это общий ответ для неопределенных ссылок.
Вы создали свою среду IDE для поиска библиотек в нужном месте, но вы не настроили свой проект на фактическую связь с libjpeg. В настройках вашего проекта вы найдете место для этого.