Компиляция CImg с помощью c ++ 0x и MingW

0

Я пытаюсь скомпилировать следующий код примера CImg с std = С++ 0x и MingW:

#include "CImg.h"

using namespace cimg_library;

int main() {
    CImg<unsigned char> img(640,400,1,3); 
    img.fill(0); 
    unsigned char purple[] = { 255,0,255 }; 
    img.draw_text(100,100,"Hello World",purple);
    img.display("My first CImg code");
    return 0;
}

Когда я компилирую, используя:

g++ -std=c++0x HelloWorld.cpp -lgdi32

Я получаю следующую ошибку:

error: '_fileno' was not declared in this scope

Но когда я компилирую без std = С++ 0x, он отлично работает:

g++ HelloWorld.cpp -lgdi32

Как скомпилировать CImg с включенным С++ 0x?

  • 0
    Какую версию GCC вы используете?
  • 0
    Петр I использую GCC 4.5.2
Теги:
c++11
cimg

1 ответ

2
Лучший ответ

Я думаю, что gnu++0x или gnu++11 должен быть доступен под GCC 4.5.x и с этим вы должны скомпилировать CImg с возможностью использовать С++ 11 (я только что проверил под своей собственной установкой MinGW, однако я использую 4.8. Могли бы вы рассмотреть возможность обновления?). Поэтому вы можете просто использовать:

g++ -o hello_world.exe HelloWorld.cpp -O2 -lgdi32 -std=gnu++0x

Или:

g++ -o hello_world.exe HelloWorld.cpp -O2 -lgdi32 -std=gnu++11

РЕДАКТИРОВАТЬ

Я только что проверил, и -std=gnu++11 доступна с GCC 4.7, но я считаю, что с -std=gnu++0x под 4.5.x.

  • 0
    Спасибо, Питер. Я протестировал std = gnu ++ 0x, и это сработало. Но даже после того, как я в Google, я все еще не понимаю разницу между gnu ++ 0x и c ++ 0x. Не могли бы вы объяснить разницу?
  • 1
    @JaimeIvanCervantes Конечно. цитируя GCC : «Чтобы включить поддержку C ++ 0x, добавьте параметр командной строки -std = c ++ 0x в командную строку g ++. Или, to enable GNU extensions in addition to C++0x extensions , добавьте - std = gnu ++ 0x для вашей командной строки g ++. " Итак, в основном это означает, что это C ++ 11 с некоторыми расширениями GNU. Более подробную информацию можно найти здесь: stackoverflow.com/questions/10613126/…

Ещё вопросы

Сообщество Overcoder
Наверх
Меню