-1

这个问题/答案最终将作为这个问题的完整答案:如何在 C++ 中操作/旋转 JPEG 图像?因为该问题的答案只有在您已经完成以下所有操作时才有用。

我在这里遵循了指南:编译 libjpeg (使用 MINGW32 Shell 接受的答案指南)

尽管下载了新副本,但它不起作用:

$ make
make  all-am
make[1]: Entering directory `/c/tmp/jpeg-9'
  CC       jaricom.lo
  CC       jcapimin.lo
jcapimin.c:127:1: error: conflicting types for 'jpeg_suppress_tables'
jcapimin.c:128:1: note: an argument type that has a default promotion can't matc
h an empty parameter name list declaration
In file included from jcapimin.c:22:0:
jpeglib.h:997:14: note: previous declaration of 'jpeg_suppress_tables' was here
make[1]: *** [jcapimin.lo] Error 1
make[1]: Leaving directory `/c/tmp/jpeg-9'
make: *** [all] Error 2

8d 和 9 都做同样的事情。

进行此问题中指出的更改后:Compile libjpeg with mingw

将以下定义添加到 jconfig.h

#define HAVE_PROTOTYPES 1

我在制作时得到这个输出:

$ make
make  all-am
make[1]: Entering directory `/c/tmp/jpeg-9'
  CC       jaricom.lo
In file included from jinclude.h:20:0,
                 from jaricom.c:17:
jconfig.h:5:24: warning: extra tokens at end of #undef directive [enabled by def
ault]
  CC       jcapimin.lo
In file included from jinclude.h:20:0,
                 from jcapimin.c:21:
jconfig.h:5:24: warning: extra tokens at end of #undef directive [enabled by def
ault]
jcapimin.c:127:1: error: conflicting types for 'jpeg_suppress_tables'
jcapimin.c:128:1: note: an argument type that has a default promotion can't matc
h an empty parameter name list declaration
In file included from jcapimin.c:22:0:
jpeglib.h:997:14: note: previous declaration of 'jpeg_suppress_tables' was here
make[1]: *** [jcapimin.lo] Error 1
make[1]: Leaving directory `/c/tmp/jpeg-9'
make: *** [all] Error 2

然后你必须运行“autoheader”来解决这个问题并再次制作。

它应该是制作的,但我的构建目录中没有任何内容由 ./configure --prefix=/c/tmp/jpeg-9-build/ 设置

我在项目目录的 .lib 文件夹中找到了 libjpeg-9.dll。

凌乱..现在的问题是:如何在 Eclipse 中使用它?

我在主目录中有 exe,在 .lib 子目录中有一些 exe 和 DLL,但没有 .lib 文件 - 如何将这些导入到 Eclipse 项目中,以便可以调用 DLL 中的函数?

$ make install收集构建目录中的文件。

我将构建目录的内容迁移到工作的 Eclipse 项目中,并链接了库和包含路径:

Eclipse中jpeglib基本实现的目录树

我不确定这是否适合我想要使用它的方式,但它确实可以编译。下一部分:从 DLL 中调用函数?

与使用已编译的 jpegtran.exe 相关:jpegtran.exe 未正确旋转图像

尝试使用库并在单独的项目中编译:需要帮助从 libjpeg 编译 jpegtran.c 代码

当前问题:需要帮助从 libjpeg 编译 jpegtran.c 代码

4

1 回答 1

1

您对更新 jconfig.h 文件的建议#define HAVE_PROTOTYPES 1只是针对更深层次问题的创可贴解决方案:jconfig.h 已损坏并且#undef对于您的编译器支持的许多重要项目不正确。

解决此问题的正确方法是按照 install.txt 建议手动编译 ckconfig.c 并让它为您生成一个 jconfig.h,然后继续进行 make 和 make install。

于 2013-03-14T00:37:36.320 回答