CImg.h 无法在 Xcode 环境中运行

CImg.h can't run in Xcode environment

本文关键字:环境 运行 Xcode CImg      更新时间:2023-10-16

******代码*****

#include "CImg.h"
#include <stdlib.h>
using namespace cimg_library;
int main() {
CImg<unsigned char> image("lena.png");
image.display();
return 0;
}

*****错误***** 构建成功但卡在某个地方: 输出:

[CImg] *CImgIOException *[instance(0,0,0,0,0x0,non-shared)] CImg::load(): 无法打开文件 'lena.png'。 libc++abi.dylib:以类型 cimg_library::CImgIOException: [instance(0,0,0,0,0x0,non-shared)] CImg::load():无法打开文件 'lena.png' 的异常。

如果你想在macOS上使用CImg,你需要做几件事。

第 1 步 - PNG 支持

如果您希望CImg能够打开 PNG 文件,则必须首先安装libpnglibz,您可以使用自制软件执行以下操作:

brew install libpng

然后,您必须告诉CImg您希望它包含对 PNG 文件的支持,您可以通过在包含CImg.h之前声明定义来做到这一点

#define cimg_use_png 1
#include "CImg.h"

然后你必须告诉Xcode库在哪里。这是最简单的通过pkgconfig,因此请使用以下命令进行安装:

brew install pkg-config

现在,您可以使用以下命令获取头文件 (#includes) 的路径:

pkg-config --cflags /usr/local/lib/pkgconfig/libpng.pc

输出

-I/usr/local/Cellar/libpng/1.6.34/include/libpng16

这告诉您在Xcode中为头文件的路径放置什么。然后,您需要通过以下方式找到链接器设置:

pkg-config --libs /usr/local/lib/pkgconfig/libpng.pc

输出

-L/usr/local/Cellar/libpng/1.6.34/lib -lpng16 -lz

因此,您必须将其作为链接库的路径和要链接到的库的名称放入Xcode中。

步骤 2 - X11 支持

完成此操作后,仅当您想在屏幕上显示图像时,您才需要设置XQuartz,因为macOS不再附带 X11 服务器。

因此,请访问此网站并下载并安装XQuartz。然后你需要告诉XcodeXQuartz 的标头 (#includes) 在哪里,即:

/opt/X11/include

以及如何与之链接:

-L /opt/X11/lib -lX11

有一些有用的截图,你需要改变Xcode中的地方,你需要改变我对这个问题的回答。