c++ - 如何在 jpeglib.h (jpeg-8c) 中包含 <stdio.h>

标签 c++ eclipse

我想用 C++ 编辑一些 jpeg 文件。我链接到 libjpg 并编译了我的代码。编译器提示 typedefs FILE 和 size_t。我用谷歌搜索了这个问题,发现这个库是为在 C 而不是 C++ 下编译而设计的,所以我们必须手动将 include stdio.h 添加到“jpeglib.h”。我这样做了,但这次编译器给了我以下错误:

undefined reference to `jpeg_CreateCompress'    JPGImage.cpp    /KFCK/src   line 47 C/C++ Problem
undefined reference to `jpeg_CreateDecompress'  JPGImage.cpp    /KFCK/src   line 92 C/C++ Problem
undefined reference to `jpeg_destroy_compress'  JPGImage.cpp    /KFCK/src   line 77 C/C++ Problem
undefined reference to `jpeg_destroy_decompress'    JPGImage.cpp    /KFCK/src   line 123    C/C++ Problem
undefined reference to `jpeg_finish_compress'   JPGImage.cpp    /KFCK/src   line 74 C/C++ Problem
undefined reference to `jpeg_finish_decompress' JPGImage.cpp    /KFCK/src   line 120    C/C++ Problem
undefined reference to `jpeg_read_header'   JPGImage.cpp    /KFCK/src   line 102    C/C++ Problem
undefined reference to `jpeg_read_scanlines'    JPGImage.cpp    /KFCK/src   line 115    C/C++ Problem
undefined reference to `jpeg_set_defaults'  JPGImage.cpp    /KFCK/src   line 61 C/C++ Problem
undefined reference to `jpeg_set_quality'   JPGImage.cpp    /KFCK/src   line 62 C/C++ Problem
undefined reference to `jpeg_start_compress'    JPGImage.cpp    /KFCK/src   line 65 C/C++ Problem
undefined reference to `jpeg_start_decompress'  JPGImage.cpp    /KFCK/src   line 104    C/C++ Problem

找不到库函数。如果我删除 stdio.h 行并再次编译,我会得到:

‘FILE’ has not been declared    KFCK        line 956, external location: /home/../jpeg-8c/jpeglib.h C/C++ Problem
‘FILE’ has not been declared    KFCK        line 957, external location: /home/../jpeg-8c/jpeglib.h C/C++ Problem
‘size_t’ does not name a type   KFCK        line 756, external location: /home/../jpeg-8c/jpeglib.h C/C++ Problem
‘size_t’ does not name a type   KFCK        line 768, external location: /home/../jpeg-8c/jpeglib.h C/C++ Problem
‘size_t’ has not been declared  KFCK        line 799, external location: /home/../jpeg-

我该怎么办?

最佳答案

把#include 放回去。但是看起来很像你在链接时没有添加 -ljpeg 或类似的东西。此外,您还需要确保如果将其包含在 C++ 代码中,您可能需要执行以下操作:

extern "C" {
#include <jpeglib.h>
}

关于c++ - 如何在 jpeglib.h (jpeg-8c) 中包含 <stdio.h>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8031615/

相关文章:

c++ - 为什么从内存映射文件读取这么快?

java - 出现 fatal error : jni. h : No such file or directory #include <jni. h>

c++ - 当您追求性能时,类(class)是否应该执行边界检查

c++ - pretty-print 元组的剖析

eclipse - GAE+Objectify - 不支持参数化类型 com.googlecode.objectify.Ref

eclipse - nodeJS 应用程序错误

eclipse - Eclipse 中有没有办法确定什么在消耗 CPU 时间?

Android ProgressBar .xml 布局

c++ - 从 C++ 代码检查互联网连接

java - Eclipse Gradle项目突然失去依赖