[wxWidgets]一、下载源码、编写链接库、编译demo

本处使用vs2017编译,在Linux下使用gcc编译。

版本是wxWidgets3.1.3版本,下载地址:https://www.wxwidgets.org/

步骤:

1、下载源码。

2、解压缩,进入build\msw文件夹内找到vc工程,vs2017对应的是wx_vc15.sln。

3、编译,默认有依赖顺序,可以直接编译,如果库不完整有些丢失会导致后面的编译都是错误的。生成demo的时候会因为缺失部分lib或者部分dll而失败,查看一下缺的库,在电脑上搜索一下,有些事可以在电脑上找到的,有些没有的网上下载,拷贝到对应的文件下就可以编译成功。

4、编译完成后,打开wxWidgets目录下的lib文件夹,会出现一个vc_lib文件夹,这就是编译生成的库文件,是一些lib。

5、编译demo:打开samples>>access,用vs2017打开access_vc9.vcxproj,会提示你升级到2017,把windows的sdk选择最新的版本。

[wxWidgets]一、下载源码、编写链接库、编译demo_第1张图片

编译。成功。可以运行一下。在windows的分格。

[wxWidgets]一、下载源码、编写链接库、编译demo_第2张图片

6、有一些会提示错误。在wxXmlDocument类的load方法中引用的一个函数没有找到定义。我们回到编译动态库的代码中,找到了是在xml.cpp中bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding, int flags)中使用了XML_Parser parser = XML_ParserCreate(NULL);这句。发现XML_ParserCreate是在expat.h中定义的。原有就是虽然我们包含了expat.h的头文件,但是没有对应的dll和lib。我们在自己的电脑上找下除了wx生成的之外有没有这个文件。将

查找expat.lib拷贝到lib文件夹中

查找expat.dll拷贝到exe同文件夹下,就可以编译通过了。这个其实是一个第三方库用于解析xml的。

[wxWidgets]一、下载源码、编写链接库、编译demo_第3张图片

 

 

在Linux下编译

1. 如果我们采用如下命令编译wxWidgets  (在E:\wxWidgets-2.8.12\build\msw目录下执行)

 mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1

2. 那么我们需要采用同样的命令编译示例程序 (在示例程序的目录下执行,例如 E:\wxWidgets-2.8.12\samples\mediaplayer)

 mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1

在Linux下的界面

[wxWidgets]一、下载源码、编写链接库、编译demo_第4张图片

你可能感兴趣的:(wxwidgets)