我正在尝试使用std = c ++ 0x和MingW:
编译以下CImg示例代码#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 = c ++ 0x的情况下进行编译时,它可以完美地运行:
g++ HelloWorld.cpp -lgdi32
如何在启用c ++ 0x的情况下编译CImg?
答案 0 :(得分:2)
我认为gnu++0x
或gnu++11
应该在GCC 4.5.x下可用,并且您应该能够编译CImg
并且可以使用C ++ 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起可用,但我相信你应该可以在4.5.x下使用-std=gnu++0x
。