Windows下通过MinGW进行WxWidgets的动态编译与静态编译
1.在Window中下载MingW
2.为MingW设置环境变量,确保在CMD中可以找到ming32-make。
3.下载wxWidgets的源码包
4.在CMD中进入wxWidgets\build\msw,执行下面的命令进行编译(根据自己的需要进行编译,不用全部编译)
MONOLITHIC=1的含义:将生成的库文件整合的一个文件中,这个文件会很大。所以我一般将MONOLITHIC设置为0。
动态库debug版本:
mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=1 UNICODE=1 BUILD=debug
动态库release版本:
mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=1 UNICODE=1 BUILD=release
静态库release版本:
mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=0 UNICODE=1 BUILD=release
上面编译完成后,会生成对应的lib库
静态库文件
wxWidgets\lib\gcc_lib
静态库所需的头文件,release版本在mswu中,debug版本在mswud中,因为我们没有生成静态库的debug版本,所以不会出现mswud这个文件夹。
wxWidgets\lib\gcc_lib\mswu
动态库文件
wxWidgets\lib\gcc_dll
静态库所需的头文件,release版本在mswu中
wxWidgets\lib\gcc_dll\mswu
静态库所需的头文件,debug版本在mswud中
wxWidgets\lib\gcc_dll\mswud
5.写个测试文件Hello.cpp
#include <wx/wx.h>class Simple : public wxFrame { public:Simple(const wxString& title);};Simple::Simple(const wxString& title): wxFrame(NULL, wxID_ANY, title, wxDefaultPosition, wxSize(250, 150)) {Centre(); }class MyApp : public wxApp { public:virtual bool OnInit(); };IMPLEMENT_APP(MyApp)bool MyApp::OnInit() {Simple *simple = new Simple(wxT("Simple"));simple->Show(true);return true; }
6.在CMD中进入Hello.cpp所在的文件夹,输入下面的编译命令:
动态库(Release)版本:
g++ minimal.cpp -o minimal -I C:\MyProgram\wxWidgets-3.1.0\include -I C:\MyProgram\wxWidgets-3.1.0\lib\gcc_dll\mswu -L C:\MyProgram\wxWidgets-3.1.0\lib\gcc_dll -lwxmsw31u_xrc -lwxmsw31u_html -lwxmsw31u_adv -lwxmsw31u_core -lwxbase31u_xml -lwxbase31u_net -lwxbase31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwxregexu -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lShlwapi -lversion
静态库(Release)版本:
g++ minimal.cpp -o minimal -I C:\MyProgram\wxWidgets-3.1.0\include -I C:\MyProgram\wxWidgets-3.1.0\lib\gcc_lib\mswu -L C:\MyProgram\wxWidgets-3.1.0\lib\gcc_lib -lwxmsw31u_xrc -lwxmsw31u_html -lwxmsw31u_adv -lwxmsw31u_core -lwxbase31u_xml -lwxbase31u_net -lwxbase31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwxregexu -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lShlwapi -lversion
动态库(Debug)版本:
g++ minimal.cpp -o minimal -I C:\MyProgram\wxWidgets-3.1.0\include -I C:\MyProgram\wxWidgets-3.1.0\lib\gcc_dll\mswu -L C:\MyProgram\wxWidgets-3.1.0\lib\gcc_dll -lwxmsw31ud_xrc -lwxmsw31ud_html -lwxmsw31ud_adv -lwxmsw31ud_core -lwxbase31ud_xml -lwxbase31ud_net -lwxbase31ud -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwxregexu -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lShlwapi -lversion
※关于wxWidgets静态库版本必须的库文件
- libwxmswxxu_core.a
- libwxbasexxu.a
- libwxpng.a
- libwxjpeg.a
- libwxtiff.a
- libwxzlib.a
- libole32.a
- libuuid.a
- libcomctl32.a
- liboleaut32.a
- libcomdlg32.a
- libwinspool.a
- libgdi32.a
- libShlwapi.a
- libversion.a
※去除默认生成的wxWidgets程序的控制台窗口
由于编译时使用的是控制台方式,所以生成的程序会多出一个控制台窗口,
应该使用GUI方式。解决的方法是向链接器ld传入“--subsystem,windows”参数,这需要用-Wl让gcc把这个参数传给ld。
动态库(Release)版本:
g++ -Wl,--subsystem,windows minimal.cpp -o minimal -I C:\MyProgram\wxWidgets-3.1.0\include -I C:\MyProgram\wxWidgets-3.1.0\lib\gcc_dll\mswu -L C:\MyProgram\wxWidgets-3.1.0\lib\gcc_dll -lwxmsw31u_xrc -lwxmsw31u_html -lwxmsw31u_adv -lwxmsw31u_core -lwxbase31u_xml -lwxbase31u_net -lwxbase31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwxregexu -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lShlwapi -lversion
静态库(Release)版本:
g++ -Wl,--subsystem,windows minimal.cpp -o minimal -I C:\MyProgram\wxWidgets-3.1.0\include -I C:\MyProgram\wxWidgets-3.1.0\lib\gcc_lib\mswu -L C:\MyProgram\wxWidgets-3.1.0\lib\gcc_lib -lwxmsw31u_xrc -lwxmsw31u_html -lwxmsw31u_adv -lwxmsw31u_core -lwxbase31u_xml -lwxbase31u_net -lwxbase31u -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwxregexu -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lShlwapi -lversion
动态库(Debug)版本:
g++ -Wl,--subsystem,windows minimal.cpp -o minimal -I C:\MyProgram\wxWidgets-3.1.0\include -I C:\MyProgram\wxWidgets-3.1.0\lib\gcc_dll\mswu -L C:\MyProgram\wxWidgets-3.1.0\lib\gcc_dll -lwxmsw31ud_xrc -lwxmsw31ud_html -lwxmsw31ud_adv -lwxmsw31ud_core -lwxbase31ud_xml -lwxbase31ud_net -lwxbase31ud -lwxtiff -lwxjpeg -lwxpng -lwxzlib -lwxregexu -lwxexpat -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwxregexu -lwinspool -lwinmm -lshell32 -lcomctl32 -lole32 -loleaut32 -luuid -lrpcrt4 -ladvapi32 -lwsock32 -lShlwapi -lversion
转载于:https://www.cnblogs.com/elitiwin/p/5341304.html
Windows下通过MinGW进行WxWidgets的动态编译与静态编译相关推荐
- 在Windows下使用MinGW静态编译Assimp
使用MinGW静态编译Assimp 到了5月份了,没有写一篇日志,于是自己从知识库里面拿出一篇文章充数吧.这次将要解说怎样在Windows下使用MinGW静态编译Assimp. Assimp是眼下比較 ...
- [转]cscope在windows下使用mingw编译的方法
cscope在windows下使用mingw编译的方法 http://blog.csdn.net/mslk/archive/2007/05/06/1598513.aspx cscope在wi ...
- Windows下查看exe可执行程序或dll动态库所依赖dll动态库的方法
Windows下查看exe可执行程序或dll动态库所依赖dll动态库的方法 如需转载请标明出处:http://blog.csdn.net/itas109 技术交流:129518033 文章目录 Win ...
- 手把手教你在Windows下使用MinGW编译libav
2019独角兽企业重金招聘Python工程师标准>>> 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言开发的,不可避免的,libav ...
- 手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)
转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言 ...
- 开源项目:windows下使用MinGW+msys编译ffmpeg
本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处. FFmpeg是在Linux平台下开发的, ...
- windows下使用MinGW+msys编译ffmpeg
本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处. FFmpeg是在Linux平台下开发的, ...
- windows 下使用 MinGW + msys 编译 ffmpeg
本文参考了网络上的不少文章,但由于版本环境的问题参考文章并不能直接指导编译,本文吸收多方经验,并在自己多次编译实验的基础上写成,欢迎转载,请注名出处. FFmpeg是在Linux平台下开发的, ...
- Windows下使用MinGw和gcc构建第一个C程序、g++构建第一个C++程序
gcc与g++都gnu的编译器:gcc是c语言的编译器:g++是c++的编译器:gdb 是调试工具. 看着有些面生:都是Linux的东西: MinGw 是 Minimal GNU on Windows ...
最新文章
- SUID SGID LINUX 权限安全设置
- ASP.NET AJAX文档-ASP.NET AJAX 概述[翻译](1)
- 64匹马,8个赛道,最少多少次比赛找出最快的 4 匹马,以及对所有马进行排序
- SQL Server2005 日期字段与字符串比较的怪异问题
- iOS UIScrollView和缩放
- Linux的操作系统下载及安装
- HiJson工具 火狐浏览器中的jsonHandle插件(以及乱码问题的解决)--来转换json串的格式
- linux内核源码分析之虚拟内存映射
- 编写一个链表结构关于车的属性,读取任意多辆车的车型、车牌号、外形颜色、价钱输入。之后遍历链表,再将链表数据打印出来。
- Mac微信小助手(免认证登录、多开、防撤回)---强烈推荐
- STM32单片机开发实例 基于STM32单片机的智能行李箱
- 宏碁暗影骑士擎安装双系统踩坑记录
- win10链接无线打印服务器,win10系统无法添加无线打印机的解决技巧
- ARM交叉编译工具链分类说明
- 一些可以参考的文档集合4
- 在PYNQ-Z2上移植RISC-V
- vue+openlayers实现地图打点
- mysql against无法搜索出结果_在搜索少于4个字符的字符串时,MATCH AGAINST在MySQL中不显示记录...
- vb6.0 类没有注册,查找具有 CLSID 的对象:{7EBDAAE0-8120-11CF-899F-00AA00688B10} 7EBDAAE1 7EBDAAE2
- Java JDK 1.8 下载及其版本说明 8u202(最后一个免费版)
热门文章
- 【推荐】《精通.NET互操作:P/Invoke,C++ Interop和COM Interop》
- js实时监听窗口变化总结
- 用jar命令将Web应用打包成war文件的简单方法
- 全国四分之三的光伏电站市场面临较大投资风险
- Web项目开发性能优化解决方案
- 文件操作:在某手诗文中插入一句话
- 适用于System Center 2016所需前期准备工作
- HDU-2612 Find a way
- 剑破冰山—Oracle开发艺术 前言
- “兰董”——激怒式Marketing,Market人底线何在?