wxWidgets(1) :mac下搭建wxWidgets 3.0 环境

简介: 本文原文连接: http://blog.csdn.net/freewebsys/article/details/45643897 转载请注明出处!1,关于wxWidgets参考:http://zh.wikipedia.org/wiki/WxWidgets wxWidgets(Windows and X widgets,最早命名为wxWindows[1])是一个开放源

本文原文连接: http://blog.csdn.net/freewebsys/article/details/45643897 转载请注明出处!

1,关于wxWidgets

参考:http://zh.wikipedia.org/wiki/WxWidgets
wxWidgets(Windows and X widgets,最早命名为wxWindows[1])是一个开放源代码且跨平台的对象工具集(widget toolkit),其库可用来创建基本的图形用户接口(GUI)。wxWidgets由Julian Smart于1992年首先开发。
wxWidgets标榜使用其库所开发的软件只需要对源代码做少量更改(或者完全不用更改),就能在各种不同的作业平台上编译并运行。目前可支持Windows、Apple Macintosh、Linux/Unix(转译成X11、GTK+、Motif等库)、OpenVMS、以及OS/2。嵌入式的版本也正在开发中[2]。
库本身使用C++语言开发,但也有其它不同编程语言的绑扎,例如:Python(wxPython)、Lua(wxlua)、Perl(wxPerl)、Ruby(wxRuby)、Smalltalk(wxSmalltalk)、Java(wx4j)、甚至是JavaScript(wxjs)等。
使用wxWidgets开发的软件不需经过诸如虚拟机的技术才能运行,虽然在不同平台可使用相近甚至相同的源代码,但其最终转译并生成的可执行文件是完全基于作业平台的。
另外,wxWidgets不只可以用来创建GUI,它也内置了基于ODBC的数据库函数、进程间通信以及网络socket函数等的支持。
wxWidgets的授权许可证是经过开放源代码促进会认证,其本质等同于GNU宽通用公共许可证(LGPL)。然而一个例外是wxWidgets授权允许修改者以自己的许可证发布。

2,编译安装源代码

我的时mac环境。直接下载代码编译。
https://github.com/wxWidgets/wxWidgets/releases
下载3.02的版本,可惜编译报错,直接下载master的代码编译。

./src/osx/webview_webkit.mm:936:25: error: cannot initialize a variable of type 'WebBackForwardList *' with an rvalue of type
      'WKBackForwardList *'
    WebBackForwardList* history = [m_webView backForwardList];

wxwidgets doesn’t build on Mac OS 10.10
http://trac.wxwidgets.org/ticket/16329#comment:22
3.02是14 年发布的,我的mac更新快,木有跟上(每次受不了更新提示,必须给更新)。

wget https://github.com/wxWidgets/wxWidgets/archive/master.zip
unzip master.zip
cd wxWidgets-master 

查看苹果sdk版本

ls /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/
MacOSX10.10.sdk MacOSX10.9.sdk

每个操作系统版本不同sdk号不同。修改编译参数SDKs MacOSX10.10.sdk,然后编译:(编译可漫长了,耐心等待。)

sudo ./configure --with-cocoa --without-subdirs --with-macosx-version-min=10.10 --with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk CXXFLAGS="-stdlib=libc++ -std=c++11" OBJCXXFLAGS="-stdlib=libc++ -std=c++11" CPPFLAGS="-stdlib=libc++" LDFLAGS="-stdlib=libc++" CXX=clang++ CXXCPP="clang++ -E" CC=clang CPP="clang -E" --enable-debug  
make
sudo make install

必须增加这些参数,否则在mac下面报错:

/usr/local/include/wx-3.1/wx/strvararg.h|27|fatal error: 'tr1/type_traits' file not found

编译之后可以安装IDE工具了。

3,下载Code::Blocks

http://www.codeblocks.org/downloads

mac直接加压缩就是一个app。直接可以使用。

创建一个新的Demo工程。

选择创建一个wxWidgets工程:


选择wxWidgets版本:

输入项目名称

没有啥,直接下一步下一步即可。



创建完成。进入项目。

3,编译项目

参考:
http://blog.csdn.net/freecamel/article/details/6881852

首先在终端运行:

 wx-config --cxxflags
-I/usr/local/lib/wx/include/osx_cocoa-unicode-3.1 -I/usr/local/include/wx-3.1 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXMAC__ -D__WXOSX__ -D__WXOSX_COCOA__ 

然后将输出内容拷贝到 Settings >> Compiler settings >>Other options

首先在终端运行:

wx-config --libs
-L/usr/local/lib   -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework System -framework OpenGL -lwx_osx_cocoau_xrc-3.1 -lwx_osx_cocoau_html-3.1 -lwx_osx_cocoau_qa-3.1 -lwx_osx_cocoau_adv-3.1 -lwx_osx_cocoau_core-3.1 -lwx_baseu_xml-3.1 -lwx_baseu_net-3.1 -lwx_baseu-3.1

然后将输出内容拷贝到 Settings >> Linker settings >> Other linker options:

然后点击小齿轮进行编译。点击三角进行运行。
如果报错:

 wx/wxprec.h: No such file or directory, 
 wx/setup.h: No such file or directory, 

说明安装上面进行的配置不正确。重新配置complier 和 linker。

4,最终运行效果


总结:wxWidgets 开发跨平台GUI还是非常不错的。同时可以巩固下C++的知识。

5,更多想法

本文原文连接: http://blog.csdn.net/freewebsys/article/details/45643897 转载请注明出处!

wxPython就是针对wxWidget进行封装的。打算做一个golang的封装。使用SWIG,已经支持golang(http://www.swig.org/),直接迁移wxPyton的代码。重新开发一GUI库是不可能的,所有参考wxPython是比较高效的办法,目前只是想法。

目录
相关文章
|
4月前
|
PyTorch TensorFlow 算法框架/工具
手把手教你-MAC笔记本安装Pytorch环境
手把手教你-MAC笔记本安装Pytorch环境
192 0
|
4月前
|
Linux C语言 iOS开发
MacOS环境-手写操作系统-06-在mac下通过交叉编译:C语言结合汇编
MacOS环境-手写操作系统-06-在mac下通过交叉编译:C语言结合汇编
74 0
|
5月前
|
JavaScript Linux Android开发
mac环境下搭建frida环境并连接网易mumu模拟器
这篇文章介绍了如何在mac环境下搭建Frida环境,并详细说明了如何连接网易MuMu模拟器进行动态分析。
344 1
|
5月前
|
项目管理 Python
如何在Mac上安装多个Python环境
在你的Mac上使用多个Python环境可以对项目管理很有帮助,特别是在同时处理不同Python版本或不同的包需求时。在这篇文章中,我们将向你展示如何在Mac上轻松地安装和管理多个Python环境。
148 5
 如何在Mac上安装多个Python环境
|
6月前
|
网络安全 数据安全/隐私保护 iOS开发
【Mac os】如何在服务器上启动Jupyter notebook并在本地浏览器Web端环境编辑程序
本文介绍了如何在服务器上启动Jupyter Notebook并通过SSH隧道在本地浏览器中访问和编辑程序的详细步骤,包括服务器端Jupyter的启动命令、本地终端的SSH隧道建立方法以及在浏览器中访问Jupyter Notebook的流程。
296 0
|
8月前
|
存储 Java API
Mac安装jadx并配置环境
Mac安装jadx并配置环境
557 0
|
9月前
|
SQL API 流计算
实时计算 Flink版产品使用合集之在Mac M1下的Docker环境中开启SQL Server代理的操作步骤是什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
292 1
|
9月前
|
Java
Mac环境下反编译apk
Mac环境下反编译apk
174 0
|
9月前
QT 5.14.2版本 MAC环境安装部署流程
QT 5.14.2版本 MAC环境安装部署流程
713 0
|
9月前
|
Linux Shell 开发工具
Git 安装和配置教程:Windows - Mac - Linux 三平台详细图文教程,带你一次性搞 Git 环境
Git是一款免费、开源的分布式版本控制系统,广泛应用于软件开发领域。随着开源和云计算的发展,Git已经成为了开发者必备的工具之一。本文将为大家介绍Git在Windows、Mac和Linux三个平台上的安装和配置方法,带你一次性搞定Git环境
3318 0