首页 > 解决方案 > C++ Xcode 9 - 无法从 Cimg 调用函数 display()

问题描述

我在 Xcode 9.0 MacOS 10.14 中 使用Cimg编写 c++ 程序以下是我的代码

#include "CImg.h"
using namespace cimg_library;
int main(){
    CImg<unsigned char> img("1.bmp");
    auto w = img._width;
    auto h = img._height;
    printf("%d %d",w,h);
    img.display();
    return 0;
    
}

图片的宽度高度打印正确

但是当它执行到时会发生错误img.display()


[CImg] *** CImgDisplayException *** CImgDisplay::screen_width(): 
Failed to open X11 display.
libc++abi.dylib: terminating with uncaught exception of type 
cimg_library::CImgDisplayException: CImgDisplay::screen_width(): 
Failed to open X11 display.
Program ended with exit code: 9

标签: c++macosxcode9cimg

解决方案


macOS不再附带 X11 服务器,所以如果你想使用CImgdisplay()功能,你需要安装XQuartz

您还需要cimg_display在 #include 之前定义cimg.h

另请参阅此处的答案

确保您可以xclock在尝试从CImg显示之前运行。


推荐阅读