[th] gcc(pch)/qt/libpng/setjmp...

Paweł Sikora pluto w pld-linux.org
Czw, 24 Lut 2005, 21:05:01 CET


przy budowaniu qt...

i686-pld-linux-g++ -c -include qt-mt -pipe -I/usr/include/postgresql/server
-I/usr/include/mysql -fno-exceptions -Wall -W -O2 -march=i686 -mtune=pentium4
-ggdb -pipe -fvisibility-inlines-hidden -D_REENTRANT -DQT_NO_DEBUG
-DQT_THREAD_SUPPORT -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT
-D_LARGEFILE_SOURCE -D_LARGE_FILES -D_FILE_OFFSET_BITS=64 -DQT_SQL_POSTGRES
-DQT_BUILTIN_GIF_READER=1 -DQT_NO_STYLE_MAC -DQT_NO_STYLE_AQUA
-DQT_NO_STYLE_INTERLACE -DQT_NO_STYLE_WINDOWSXP -DQT_NO_STYLE_COMPACT
-DQT_NO_STYLE_POCKETPC
-I/home/users/pluto/multimedia/rpm/BUILD/qt-x11-free-3.3.4/mkspecs/linux-g++
-I. -I/usr/include/freetype2 -I3rdparty/opentype -I../include
-I/usr/X11R6/include -I/usr/X11R6/include -I.moc/release-static-mt/
-o .obj/release-static-mt/qpngio.o kernel/qpngio.cpp

kernel/qasyncimageio.h:48: warning: 'class QImageConsumer' has virtual
                                     functions but non-virtual destructor
/usr/include/pngconf.h:307: error: expected constructor, destructor,
                                   or type conversion before '.' token
/usr/include/pngconf.h:308: error: '__dont__' does not name a type
make[2]: *** [.obj/release-static-mt/qpngio.o] Błąd 1


...naglowki libpng odstawiaja szopke z setjmp:

#if !defined(PNG_SETJMP_NOT_SUPPORTED) && !defined(PNG_NO_SETJMP_SUPPORTED)
#  define PNG_SETJMP_SUPPORTED
#endif

#ifdef PNG_SETJMP_SUPPORTED
/* This is an attempt to force a single setjmp behaviour on Linux.  If
 * the X config stuff didn't define _BSD_SOURCE we wouldn't need this.
 */

#  ifdef __linux__
#    ifdef _BSD_SOURCE
#      define PNG_SAVE_BSD_SOURCE
#      undef _BSD_SOURCE
#    endif
#    ifdef _SETJMP_H
     /* If you encounter a compiler error here, see the explanation
      * near the end of INSTALL.
      */
         __png.h__ already includes setjmp.h;	//	L:307
         __dont__ include it again.;		//	L:308
#    endif
#  endif /* __linux__ */

   /* include setjmp.h for error handling */
#  include <setjmp.h>

#  ifdef __linux__
#    ifdef PNG_SAVE_BSD_SOURCE
#      define _BSD_SOURCE
#      undef PNG_SAVE_BSD_SOURCE
#    endif
#  endif /* __linux__ */
#endif /* PNG_SETJMP_SUPPORTED */

wyjasnienie z INSTALL:

If you encounter a compiler error message complaining about the
lines
      __png.h__ already includes setjmp.h;
      __dont__ include it again.;
This means you have compiled another module that includes setjmp.h,
which is hazardous because the two modules might not include exactly
the same setjmp.h.  If you are sure that you know what you are doing
and that they are exactly the same, then you can comment out or
delete the two lines.  Better yet, use the cexcept interface
instead, as demonstrated in contrib/visupng of the libpng distribution.


chyba mozemy usunac kawalek z pngconf.h bo przy korzystaniu
z prekompilowanych naglowkow daleko nie zajedziemy.

-- 
/* Copyright (C) 2003, SCO, Inc. This is valuable Intellectual Property. */

                           #define say(x) lie(x)




Więcej informacji o liście dyskusyjnej pld-devel-pl