Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/147.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ MacOS上eclipse的CImg问题_C++_Macos_Eclipse Cdt - Fatal编程技术网

C++ MacOS上eclipse的CImg问题

C++ MacOS上eclipse的CImg问题,c++,macos,eclipse-cdt,C++,Macos,Eclipse Cdt,我正在尝试在MacOS Catalina(10.15.6)上设置EclipseIDE2020-06,以便它与CImg一起工作。我正在运行CImg上提供的标准程序: using namespace cimg_library; int main() { CImg<unsigned char> image("lena.jpg"), visu(500,400,1,3,0); const unsigned char red[] = { 255,0,0 }, gre

我正在尝试在MacOS Catalina(10.15.6)上设置EclipseIDE2020-06,以便它与CImg一起工作。我正在运行CImg上提供的标准程序:

using namespace cimg_library;

int main() {
  CImg<unsigned char> image("lena.jpg"), visu(500,400,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;
}
当我尝试从Eclipse执行此操作时,编译工作正常,但当尝试运行代码时,我得到错误:

[CImg] *** CImgIOException *** [instance(0,0,0,0,0x0,non-shared)] CImg<unsigned char>::load(): Failed to recognize format of file 'lena.jpg'.
libc++abi.dylib: terminating with uncaught exception of type cimg_library::CImgIOException: [instance(0,0,0,0,0x0,non-shared)] CImg<unsigned char>::load(): Failed to recognize format of file 'lena.jpg'.
[CImg]***CImgIOException***[instance(0,0,0,0,0x0,非共享)]CImg::load():无法识别文件“lena.jpg”的格式。
libc++abi.dylib:以类型为cimg_library::CImgIOException:[实例(0,0,0,0,0x0,非共享)]的未捕获异常终止cimg::load():无法识别文件“lena.jpg”的格式。
eclipse中设置的Include和库如下所示:

有人知道我在Eclipse中的设置有什么问题吗

编辑: 根据建议,使用的调试器设置如下所示:

更新
当用gdb运行终端编译程序时,我没有遇到任何问题。我无法测试eclipse编译的程序是否在终端中运行,因为这些文件不知何故被锁定。

我相信imagemagick不会对您面临的问题做任何处理,而是删除了标记。另外,include和library设置是不相关的,只要eclipse能够成功地构建您的程序而不出现任何故障。我怀疑这更像是一个最终程序由eclipse执行的问题。在eclipse IDE中使用调试器设置的屏幕截图更有趣。添加一条语句以打印当前工作目录(请参阅
getcwd()
函数)。这两种调用方式将有所不同。更改运行配置中的工作目录或使用绝对路径。如果希望
CImg
本身读取/写入jpeg,则需要在项目设置中定义CImg\u use_jpeg,并且需要安装
libjpeg
,可能需要使用
brew安装libjpeg
并需要链接到它@πάνταῥεῖ 我添加了调试器设置的屏幕截图。@两个调用的路径都是相同的
[CImg] *** CImgIOException *** [instance(0,0,0,0,0x0,non-shared)] CImg<unsigned char>::load(): Failed to recognize format of file 'lena.jpg'.
libc++abi.dylib: terminating with uncaught exception of type cimg_library::CImgIOException: [instance(0,0,0,0,0x0,non-shared)] CImg<unsigned char>::load(): Failed to recognize format of file 'lena.jpg'.