...
/bin/sh ../../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../../.. -fPIC -Wall wx-config-3.0 --unicode=yes --cxxflags -D_SAGA_LINUX -D_SAGA_UNICODE -D_TYPEDEF_BYTE -D_TYPEDEF_WORD -D_SAGA_API_EXPORTS -D_SAGA_PYTHON -fopenmp -I/usr/include/polyclipping -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -c -o api_string.lo api_string.cpp
...
api_string.cpp: In member function 'bool CSG_String::asInt(int&) const':
api_string.cpp:731:34: error: 'wxStrtol' was not declared in this scope
Value = wxStrtol(start, &end, 10);
^
api_string.cpp: In member function 'bool CSG_String::asDouble(double&) const':
api_string.cpp:751:30: error: 'wxStrtod' was not declared in this scope
Value = wxStrtod(start, &end);
^
api_string.cpp: In function 'int SG_Printf(const wchar_t, ...)':
api_string.cpp:879:37: error: 'wxVprintf' was not declared in this scope
int ret = wxVprintf(Format, argptr);
^
api_string.cpp: In function 'int SG_FPrintf(FILE, const wchar_t, ...)':
api_string.cpp:893:46: error: 'wxVfprintf' was not declared in this scope
int ret = wxVfprintf(stream, Format, argptr);
^
api_string.cpp: In static member function 'static CSG_String CSG_String::Format(const wchar_t, ...)':
api_string.cpp:289:27: warning: second parameter of 'va_start' not last named argument [-Wvarargs]
va_start(argptr, sFormat);
^
api_string.cpp: In member function 'int CSG_String::Printf(const wchar_t*, ...)':
api_string.cpp:315:27: warning: second parameter of 'va_start' not last named argument [-Wvarargs]
va_start(argptr, sFormat);
^
While the missing declarations can be tackled by including xlocale.h, the latter two remain.
I think you should update the milestones to pick from on this tracker.
Anonymous
Hm, I don't have an idea what causes these errors. These functions haven't changed since a long time and I can compile 2.1.1 (trunk) without problems with wxWidgets 3.0.0.
I think I found the reason for at least the first half of the problem: The Fedora build uses --disable-compat28. Whether that is for a reason or not I'd have to ask.
Looking inside string.h:
4300 #if WXWIN_COMPATIBILITY_2_8
4301 // lot of code out there doesn't explicitly include wx/crt.h, but uses
4302 // CRT wrappers that are now declared in wx/wxcrt.h and wx/wxcrtvararg.h,
4303 // so let's include this header now that wxString is defined and it's safe
4304 // to do it:
4305 #include "wx/crt.h"
4306 #endif
crt.h includes wxcrtvararg.h and that's where wxVprintf() is defined.
... and the second issue too. I'll try to find out the rationale behind disabling compatibility.
Fedora's wxGTK3 now has the compatibility mode enabled, thus the issue is solved for me.
Ok, thanks for reporting - I'll close the bug, but we should keep in mind to get rid of the depreciated methods in the near future.