Do you have a typical platform dependent issue you're battling with ? Ask it here. Make sure you mention your platform, compiler, and wxWidgets version.
I am trying to build wxWidgets 3.1.1 on Solaris 11.3 SRU34 with gcc 5.4.0 and GNU make 3.82 and receive a ton of errors after about 5 minutes of building.
./include/wx/wxcrtbase.h:667:68: error: ‘wcsdup’ was not declared in this scope
./include/wx/wxcrtbase.h:667:68: error: ‘wcsdup’ was not declared in this scope
./include/wx/wxcrtbase.h:667:68: error: ‘wcsdup’ was not declared in this scope
./include/wx/wxcrt.h:187:95: error: ‘wcsnlen’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrtbase.h:667:68: error: ‘wcsdup’ was not declared in this scope
./include/wx/wxcrt.h:187:95: error: ‘wcsnlen’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:187:95: error: ‘wcsnlen’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:187:95: error: ‘wcsnlen’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:324:47: error: ‘wcscasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope
I have tested with gcc/g++, cc/g++, cc/CC. All fail. Oddly enough, when I switched to Solaris Studio 12.4 cc/CC(the C/C++ compiler for Studio) throws the following error during configure:
I've no knowledge or experience of solaris, but googling the first type of error produced this result. Most of that will be irrelevant, but worth a look.
configure: error: Can't use --enable-std_string without std::wstring or std::basic_string<wchar_t>
I was more concerned with the multitude of "was not declared in this scope" errors when we know that they're defined. The gcc/g++ method shows the "./include/wx/wxcrt.h:519:50: error: ‘wcsncasecmp’ was not declared in this scope" errors whereas the cc/g++ method gives "error: ‘int vwprintf(const wchar_t*, va_list)’ conflicts with a previous declaration" and " error: ‘int vwprintf(const wchar_t*, va_list)’ conflicts with a previous declaration". Neither of which make sense at the moment.
If I can't figure out the main issue, I'll definitely consider changing gears for the --enable-std_string secondary issue (using CC), as you suggested.
I have tried changing the "using" lines and their order in the wchar.h file and I even did a few test edits of wxcrt.cpp to no avail.
Hi,
If it matters I successfully built wxWidgets 2.8 on latest Sun Solaris with the Solaris studio.
You can try upgrading the OS (which I know will be painful, it's not Solaris anymore) or try to play with the configure option.
Or even better check the config.log file and see why the type/functions was not recognized.
If you can check the reason and submit you findings to the wx-dev ML it would be great.