在Windows上使用Cygwin安装和使用wxWidgets

时间:2018-01-19 17:56:37

标签: cygwin wxwidgets

我在Windows上有wxWidgets,并且让它与VS 2017一起工作。我现在想尝试使用Cygwin。按照install {t}中的步骤https://github.com/wxWidgets/wxWidgets/blob/master/docs/msw/install.txt,可以找到以下错误:

$ 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 在./src/common/string.cpp:39:0:

中包含的文件中

./ include / wx / xlocale.h:在函数'double wxStrtod_lA(const char *,char **,const wxXLocale&)'中:

./ include / wx / xlocale.h:243:54:错误:'strtod_l'未在此范围内声明          {return wxCRT_Strtod_lA(c,endptr,loc.Get()); }                                                       ^

./include/wx/xlocale.h:在函数'long int wxStrtol_lA(const char *,char **,int,const wxXLocale&)'中:

./ include / wx / xlocale.h:245:60:错误:'strtol_l'未在此范围内声明          {return wxCRT_Strtol_lA(c,endptr,base,loc.Get()); }                                                             ^

./include / wx / xlocale.h:在函数'long unsigned int wxStrtoul_lA(const char *,char **,int,const wxXLocale&)':

./ include / wx / xlocale.h:247:61:错误:'strtoul_l'未在此范围内声明          {return wxCRT_Strtoul_lA(c,endptr,base,loc.Get()); }                                                              ^

./ include / wx / xlocale.h:在函数'double wxStrtod_l(const wchar_t *,wchar_t **,const wxXLocale&)'中:

./ include / wx / xlocale.h:301:58:错误:未在此范围内声明'wcstod_l'              {return wxCRT_Strtod_lW(c,endptr,loc.Get()); }                                                           ^

./ include / wx / xlocale.h:在函数'long int wxStrtol_l(const wchar_t *,wchar_t **,int,const wxXLocale&)'中:

./ include / wx / xlocale.h:303:64:错误:未在此范围内声明'wcstol_l'              {return wxCRT_Strtol_lW(c,endptr,base,loc.Get()); }                                                                 ^

./include/wx/xlocale.h:在函数'long unsigned int wxStrtoul_l(const wchar_t *,wchar_t **,int,const wxXLocale&)':

./ include / wx / xlocale.h:305:65:错误:未在此范围内声明'wcstoul_l'              {return wxCRT_Strtoul_lW(c,endptr,base,loc.Get()); }                                                                  ^ make:*** [Makefile:25366:basedll_string.o]错误1

不确定如何继续。

2 个答案:

答案 0 :(得分:0)

Cygwin已经有了wxWidgets库

完整列表 https://cygwin.com/packages/package_list.html

答案 1 :(得分:0)

您可以尝试使用--disable-xlocale配置选项来解决此特定问题,但是当前的Git主服务器在Cygwin下使用Appveyor进行了测试并在那里构建良好,因此可能值得将源更新为最新版本。

一般来说,请注意Cygwin不是wxWidgets的第1层平台,因此我不推荐使用它,除非你有一些非常好的理由。 wxWidgets是关于使用本机API的,并且很难将它与在MSW下提供Unix API的Cygwin方法结合在一起,所以它不是一个特别快乐的组合,不幸的是(我说这是很长一段时间Cygwin用户喜欢它很多 - 但我仍然不使用它在MSW下进行开发。)