这个问题/答案最终会成为这个问题的完整答案:How can I manipulate/rotate a JPEG image in C++?因为只有你已经完成了以下所有这些问题,所以对这个问题的答案才有用。
我按照指南进行操作:Compiling 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项目中,并链接了库并包含路径:
我不确定这是否适合我想要如何使用它,但它是一些东西,它编译。下一部分:从DLL中调用函数?
与使用已编译的jpegtran.exe相关:jpegtran.exe not correctly rotating image
尝试使用库并在单独的项目中编译:Need help compiling jpegtran.c code from libjpeg
答案 0 :(得分:1)
您将jconfig.h文件更新为#define HAVE_PROTOTYPES 1
的建议只是针对更深层问题的创可贴解决方案:jconfig.h已损坏且编译器支持的许多重要项目的#undef
不正确
解决此问题的正确方法是按照install.txt建议手动编译ckconfig.c并让它为您生成jconfig.h,然后继续make,并进行安装。