使用mingw编译libjpeg

5

我终于安装了mingw和msys,现在想要编译libjpeg。我从项目页面下载了最新的libjpeg源代码(jpeg-8d)并解压了文件。

然后我运行以下配置命令:

./configure --build=x86_64-w64-mingw32 --prefix=/D/Libraries/bin/jpegd-8d

之后我想使用make进行构建,但是出现了以下错误:
$ make 
make  all-am
make[1]: Entering directory `/D/Libraries/sources/jpeg-8d'
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 match an empty parameter name list declaration
In file included from jcapimin.c:22:0:
jpeglib.h:982:14: note: previous declaration of 'jpeg_suppress_tables' was here
make[1]: *** [jcapimin.lo] Error 1
make[1]: Leaving directory `/D/Libraries/sources/jpeg-8d'
make: *** [all] Error 2

我在这里看到一篇帖子,其中一个人遇到了和我相同的问题:libjpeg:编译错误 建议运行"autoheader"命令。我尝试执行此操作,但是我遇到了以下错误:
    sh: autoheader:command not found

我在谷歌上搜索了autoheader和mingw/msys,但是没有找到答案。

所以我的问题是:是否有其他方法可以编译它?如果没有,在msys/mingw64中如何安装所需的工具?

此致


2
在jconfig.h中设置#define HAVE_PROTOTYPES 1。 - pogorskiy
谢谢,你让我的一天都变得美好了!!终于可以工作了。如果你把这个作为答案发布,我可以将其标记为正确答案。 - Maecky
2个回答

7

如果由于某些原因你无法运行

 $ autoheader

请将以下定义添加到jconfig.h文件中:
 #define HAVE_PROTOTYPES 1

更新jconfig.h文件的建议,将#define HAVE_PROTOTYPES 1仅仅是一个临时解决方案,因为更深层次的问题是:jconfig.h文件已经损坏,并且对于您的编译器支持的许多重要项有不正确的#undef。 - Martin

3

按照install.txt的建议手动编译ckconfig.c,并让它为您生成jconfig.h,然后继续进行make和make install操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接