Как исправить «неопределенную ссылку SetDIBitsToDevice», даже уже связанную библиотеку «gdi32.lib»? - PullRequest
0 голосов
/ 04 января 2019

Я впервые узнаю о Cimg.Я пытаюсь код из Cimg учебника.Я получаю сообщение об ошибке "undefined reference to SetDIBitsToDevice@48".

Я использую CodeBlocks 17.12.Я уже связался с gdi32.lib из комплекта Windows.Я использовал строитель option -> link setting.Это все еще говорит мне "undefined reference to SetDIBitsToDevice@48".После этого я переключился на библиотеку "libgdi32.a" и "gdi32" и добавил заголовочный файл "wingdi.h" в файл "Cimg.h".Все не работают.

Вот код из http://cimg.eu/reference/group__cimg__tutorial.html

#include "CImg.h"
using namespace cimg_library;
int main() {
    CImg<unsigned char> image("1.jpg"), visu(1920,1080,1,3,0);
    const unsigned char red[] = { 255,0,0 }, green[] = { 0,255,0 }, blue[] = { 0,0,255 };
    image.blur(2.5);
    CImgDisplay main_disp(image,"Click a point"), draw_disp(visu,"Intensity profile");
    while (!main_disp.is_closed() && !draw_disp.is_closed()) {
      main_disp.wait();
      if (main_disp.button() && main_disp.mouse_y()>=0) {
         const int y = main_disp.mouse_y();
         visu.fill(0).draw_graph(image.get_crop(0,y,0,0,image.width()-1,y,0,0),red,1,1,0,255,0);
         visu.draw_graph(image.get_crop(0,y,0,1,image.width()-1,y,0,1),green,1,1,0,255,0);
         visu.draw_graph(image.get_crop(0,y,0,2,image.width()-1,y,0,2),blue,1,1,0,255,0).display(draw_disp);
      }
    }
    return 0;
}

Как его скомпилировать, кроме добавления #define cimg_display 0 в заголовок?

...