无法在Cygwin上构建wxWidgets - xlocale.h

时间:2017-10-05 19:21:39

标签: build cygwin wxwidgets

我一直在尝试在Cygwin中构建wxWidgets 3.1.0。我按照install.txt中描述的过程进行了总结,总结如下:

cd $WXWIN
mkdir build-debug
cd build-debug
../configure --enable-debug
make -j4

我还尝试了一些其他标志用于配置,例如--with-X11,正如this指南所建议的那样。但是,我一直收到的错误如下:

/home/acohen8/wxWidgets-3.1.0/build-debug/bk-deps g++ -c -o basedll_strvararg.o  -D__WXMSW__      -DWXBUILDING      -I../src/regex  -DwxUSE_GUI=0 -DWXMAKINGDLL_BASE -DwxUSE_BASE=1  -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -D_FILE_OFFSET_BITS=64 -I/home/acohen8/wxWidgets-3.1.0/build-debug/lib/wx/include/msw-unicode-3.1 -I../include -g -O0  ../src/common/strvararg.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()); }
                                                                 ^
/home/acohen8/wxWidgets-3.1.0/build-debug/bk-deps g++ -c -o basedll_sysopt.o  -D__WXMSW__      -DWXBUILDING      -I../src/regex  -DwxUSE_GUI=0 -DWXMAKINGDLL_BASE -DwxUSE_BASE=1  -Wall -Wundef -Wunused-parameter -Wno-ctor-dtor-privacy -Woverloaded-virtual -D_FILE_OFFSET_BITS=64 -I/home/acohen8/wxWidgets-3.1.0/build-debug/lib/wx/include/msw-unicode-3.1 -I../include -g -O0  ../src/common/sysopt.cpp
make: *** [Makefile:25366: basedll_string.o] Error 1
make: *** Waiting for unfinished jobs....

我非常感谢对此提出一些建议!

1 个答案:

答案 0 :(得分:0)

这很可能已经在wx的git master by this commit中修复了。但您可以使用configure --disable-xlocale来解决此问题。