0
votes

I have wxWidgets on windows and have it working with VS 2017. I now want to try with Cygwin. Following the steps in the install.txt, which can be found here, https://github.com/wxWidgets/wxWidgets/blob/master/docs/msw/install.txt, gave the following errors:

$ make

/cygdrive/c/wxWidgets-3.1.0/bk-deps g++ -c -o basedll_string.o -D__WXMSW__ -DWXBUILDING -I/cygdrive/c/wxWidgets-3.1.0/src/tiff/libtiff -I./src/tiff/libtiff -I./src/jpeg -I./src/png -I./src/zlib -I./src/regex -I./src/expat/lib -DwxUSE_GUI=0 -DWXMAKINGDLL_BASE -DwxUSE_BASE=1 -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -D_FILE_OFFSET_BITS=64 -I/cygdrive/c/wxWidgets-3.1.0/lib/wx/include/msw-unicode-3.1 -I./include -O2 ./src/common/string.cpp In file included from ./src/common/string.cpp:39:0:

./include/wx/xlocale.h: In function ‘double wxStrtod_lA(const char*, char**, const wxXLocale&)’:

./include/wx/xlocale.h:243:54: error: ‘strtod_l’ was not declared in this scope { return wxCRT_Strtod_lA(c, endptr, loc.Get()); } ^

./include/wx/xlocale.h: In function ‘long int wxStrtol_lA(const char*, char**, int, const wxXLocale&)’:

./include/wx/xlocale.h:245:60: error: ‘strtol_l’ was not declared in this scope { return wxCRT_Strtol_lA(c, endptr, base, loc.Get()); } ^

./include/wx/xlocale.h: In function ‘long unsigned int wxStrtoul_lA(const char*, char**, int, const wxXLocale&)’:

./include/wx/xlocale.h:247:61: error: ‘strtoul_l’ was not declared in this scope { return wxCRT_Strtoul_lA(c, endptr, base, loc.Get()); } ^

./include/wx/xlocale.h: In function ‘double wxStrtod_l(const wchar_t*, wchar_t**, const wxXLocale&)’:

./include/wx/xlocale.h:301:58: error: ‘wcstod_l’ was not declared in this scope { return wxCRT_Strtod_lW(c, endptr, loc.Get()); } ^

./include/wx/xlocale.h: In function ‘long int wxStrtol_l(const wchar_t*, wchar_t**, int, const wxXLocale&)’:

./include/wx/xlocale.h:303:64: error: ‘wcstol_l’ was not declared in this scope { return wxCRT_Strtol_lW(c, endptr, base, loc.Get()); } ^

./include/wx/xlocale.h: In function ‘long unsigned int wxStrtoul_l(const wchar_t*, wchar_t**, int, const wxXLocale&)’:

./include/wx/xlocale.h:305:65: error: ‘wcstoul_l’ was not declared in this scope { return wxCRT_Strtoul_lW(c, endptr, base, loc.Get()); } ^ make: *** [Makefile:25366: basedll_string.o] Error 1

Not sure how to proceed.

2
What version of g++ do you use? What version of Cygwin? Can you try with the Git HEAD? Did you use any configure options?Igor

2 Answers

0
votes

Cygwin already has the wxWidgets libraries

Full list on https://cygwin.com/packages/package_list.html

0
votes

You could try using --disable-xlocale configure option to work around this particular problem, but the current Git master is tested with Appveyor under Cygwin and build fine there, so it might be worth updating your sources to the latest version.

Generally speaking, please notice that Cygwin is not a Tier-1 platform for wxWidgets, so I wouldn't recommend using it unless you have some really good reasons for it. wxWidgets is all about using native APIs and it's difficult to marry it with the Cygwin approach of providing Unix APIs under MSW, so it's not a particularly happy combination, unfortunately (I'm saying this as a long time Cygwin user who likes it a lot -- but I still don't use it for developing under MSW).