Bugs and Problems |
In file included from wx_image.h:36, from wx_image.cpp:37: wx_imgx.h:53: conflicting types for `char * sys_errlist[]' /usr/include/stdio.h:221: previous declaration as `const char *const const sys_errlist[]'remove line 53 in wx_imgx.h.
Unfortunately for some applications, this method can cause slow scrolling. You may wish to change USE\_BITMAP\_PREVIEW to 1 in include/base/wx_print.h to re-enable the old method.
wx_setup.h by default sets "#define USE_GNU_WXSTRING 1", but the makefile.nt in src/msw sets "USE_GNU_WXSTRING=0". For all the samples etc. to compile, change the makefile.nt to set this value to 1, clean the object files ('cleanall' target), and recompile.
Download patch2.zip for fixes to most of these problems (except the Fafa one). Unzip with the -a option to convert DOS filenames to Unix.
wb_list.cpp: In method `wxList::wxList(wxObject * ...)': wb_list.cpp:178: `__builtin_va_alist' undeclared (first use this function) wb_list.cpp:178: (Each undeclared identifier is reported only once wb_list.cpp:178: for each function it appears in.) wb_list.cpp:186: warning: implicit declaration of function `int __builtin_va_arg_incr(...)'try editing the makefile and setting your OPTIONS (XView/Motif) or FLAGS (Xt) as follows:
FLAGS = -O2 -D__EXTENSIONS__ -Dsparc -Dlint -DSVR4 -Wall -Dwx_xt # (or -Dwx_motif for Motif)for Solaris; for other systems, -D__EXTENSIONS__ is (presumably?) the relevant flag that helps.
ld: Undefined symbol wxView virtual table wxCommand virtual table wxFileHistory virtual table ...when compiling with g++, it could be that the relevant file (here, src/base/wx_doc.cpp) is in DOS CR/LF format. Remove the extra characters with a dos2unix utility, or by zipping up the file and unzipping with the -a option, or by using a text editor, and recompile.
and recompile.
Shell.o(.text+0x2ba0): undefined reference to `SmcModifyCallbacks'
you may need to add /usr/X11R6/lib to your XLIB variable in src/make.env.
In AdjustScrollbars, place #ifdef wx_motif after the opening brace and #endif before the closing brace.
=============================patch================================ *** htmltabl.cpp.orig Tue Jul 29 15:32:29 1997 --- htmltabl.cpp Tue Jul 29 15:40:56 1997 *************** *** 33,43 **** #include "htmlpars.h" #include "htmltabl.h" ! const float DEFAULT_BORDER_WIDTH = 1.0F; ! const float DEFAULT_CELL_SPACING = 2.0F; ! const float DEFAULT_CELL_PADDING = 1.0F; ! const float EXTRA_X_SPACING = 2.0F; ! const float EXTRA_Y_SPACING = 4.0F; ListOf table_list; --- 33,43 ---- #include "htmlpars.h" #include "htmltabl.h" ! extern const float DEFAULT_BORDER_WIDTH = 1.0F; ! extern const float DEFAULT_CELL_SPACING = 2.0F; ! extern const float DEFAULT_CELL_PADDING = 1.0F; ! extern const float EXTRA_X_SPACING = 2.0F; ! extern const float EXTRA_Y_SPACING = 4.0F; ListOf table_list; *** http.cpp.orig Tue Jul 29 15:18:19 1997 --- http.cpp Tue Jul 29 15:20:15 1997 *************** *** 838,844 **** citem->secure = 0; string a, v; ! char* ptr = rest; while (GetAttributeValuePair(ptr, a, v)) { --- 838,844 ---- citem->secure = 0; string a, v; ! const char* ptr = rest; while (GetAttributeValuePair(ptr, a, v)) { *** simsock.cpp.orig Tue Jul 29 15:14:18 1997 --- simsock.cpp Tue Jul 29 15:15:01 1997 *************** *** 193,199 **** #endif #endif ! act.sa_handler = (void (*)(... )) SIG_IGN; act.sa_flags = 0; sigaction(SIGPIPE, &act, 0); } --- 193,199 ---- #endif #endif ! act.sa_handler = (void (*)(int )) SIG_IGN; act.sa_flags = 0; sigaction(SIGPIPE, &act, 0); }
wx_utils.cpp:36: invalid `#pragma implementation' wx_utils.cpp:39: invalid #-lineYou need to put quotation marks around the filename in the #pragma implementation line src/x/wx_utils.cpp.
char *wxFontNameDirectory::GetScreenName(int fontid, int weight, int style) { wxFontNameItem *item = (wxFontNameItem *)table->Get(fontid); if (!item) return NULL; weight = WCoordinate(weight); style = SCoordinate(style); if (!item->screen.map[weight][style]) item->screen.Initialize(item->name, "Screen", weight, style); return item->screen.map[weight][style]; } char *wxFontNameDirectory::GetPostScriptName(int fontid, int weight, int style) { wxFontNameItem *item = (wxFontNameItem *)table->Get(fontid); if (!item) return NULL; weight = WCoordinate(weight); style = SCoordinate(style); if (!item->printing.map[weight][style]) item->printing.Initialize(item->name, "PostScript", weight, style); return item->printing.map[weight][style]; } char *wxFontNameDirectory::GetAFMName(int fontid, int weight, int style) { wxFontNameItem *item = (wxFontNameItem *)table->Get(fontid); if (!item) return NULL; weight = WCoordinate(weight); style = SCoordinate(style); if (!item->afm.map[weight][style]) item->afm.Initialize(item->name, "Afm", weight, style); return item->afm.map[weight][style]; }
#include <iostream>with
#include <iostream.h>
My mistake was mix these different kinds of #include. See also the next paragraph.
Volker Flvder (volker.floeder@hamburg.netsurf.de) has sent me the changes he made to 1.66F to get it compiled with VC++ 5.0. See the ports/msvc50 directory.
The Fafa library will be removed from wxWidgets 2.0, and bitmap messages and buttons will be reimplemented.
make.env: # AIX: -lCns -lbsd #COMPLIBS=-lCns -lbsd COMPLIBS=