2011年7月20日水曜日

jpeg_suppress_tables

問題:
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
jpeglib.h:984:14: note: previous declaration of 'jpeg_suppress_tables' was here
考察:
  • autoheaderを使うと出なくなりました。詳しくはこちらの記事をご覧ください。

  • jconfig.h中の、これがダメ
    #undef HAVE_PROTOTYPES
  • configureのバグか、jconfig.cfgのバグか、折角configureして出来たconfdefs.hの内容が反映されないのが原因かなと考えられます。
  • autoconfを使ってconfigureを作り直したら出なくなりました。但し、作り直す方法にクセが有ります。
    詳しくは
    こちらの記事をご覧ください。
対策:
  • configureの前に、autoheaderを実行します。

  • config.logのケツの方に在るconfdefs.hとやらの定義を自分で、自動生成された後のjconfig.hの後ろに貼り付けてあげる。
## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
//#define PACKAGE_NAME "libjpeg"
//#define PACKAGE_TARNAME "libjpeg"
//#define PACKAGE_VERSION "8.3.0"
//#define PACKAGE_STRING "libjpeg 8.3.0"
//#define PACKAGE_BUGREPORT ""
//#define PACKAGE_URL ""
//#define PACKAGE "libjpeg"
//#define VERSION "8.3.0"
#define PROTOTYPES 1
#define __PROTOTYPES 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_SYS_STAT_H 1
#define HAVE_STDLIB_H 1
#define HAVE_STRING_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRINGS_H 1
#define HAVE_UNISTD_H 1
#define HAVE_STRING_H 1
#define HAVE_PROTOTYPES 1
#define HAVE_STDDEF_H 1
#define HAVE_STDLIB_H 1
#define HAVE_LOCALE_H 1
#define HAVE_UNSIGNED_CHAR 1
#define HAVE_UNSIGNED_SHORT 1
#define INLINE __inline__
#define HAVE_DLFCN_H 1
#define LT_OBJDIR ".libs/"
  • PACKAGE_NAME等の定義は外しておく。他のパッケージと混ぜる時に問題となるので。

0 件のコメント:

コメントを投稿