一文全面了解 wxWidgets 的安装

目录

使用二进制文件

从源代码构建

获取源代码

选择构建系统

构建您的应用程序

Unix,命令行

Unix,使用GNU Make

MSW,使用Microsoft Visual Studio

Mac,使用Xcode

其他IDE


wxWidgets的头文件和库必须可用,以便使用它构建应用程序,因此开始使用wxWidgets的第一步是安装它。对于所有平台和库版本,都可以通过从源代码构建wxWidgets来完成此操作,但是对于最常见的平台,也提供了预构建的库二进制文件,因此首先要做的决定是使用这些二进制文件还是自行构建库。自行构建库允许您使用确切需要的选项编译最新版本,因此是最灵活的解决方案,但使用二进制文件可能更简单、更快捷——选择权在您,只需根据您偏好的方法遵循下面相应部分中的说明即可。当然,您只需要执行其中一种操作,而不是两者都执行。

使用二进制文件

如何安装二进制文件取决于您的平台:

•对于Microsoft Windows(MSW),wxWidgets项目在下载页面上提供了官方二进制文件,请参阅使用它们的说明。

•对于Linux和其他免费的类Unix系统,wxWidgets包在系统存储库中以“wxGTK”的名称提供。请注意,要使用wxWidgets开发应用程序,您可能需要安装“开发”包,而不仅仅是运行使用wxWidgets的应用程序所需的库。例如,在Debian和基于Debian的系统(如Ubuntu)上,您需要运行apt get libwxgtkX.Y-dev。

•对于macOS,wxWidgets可在第三方包管理器(如brew或MacPorts)中找到,您可以以通常的方式安装它们。

此外,一些第三方C++包管理器也提供wxWidgets二进制文件。例如,请查看此帖子以获取使用vcpkg C++包管理器安装wxWidgets的说明。

从源代码构建

获取源代码

要构建库,首先需要获取其源代码。推荐的方法是使用Git从官方wxWidgets存储库中检出源代码,使用以下命令:

$ git clone --recurse-submodules https://github.com/wxWidgets/wxWidgets.git

另外,您可以从下载页面下载源代码。请注意,所有不同格式(ZIP、7z、tar.bz2)的源代码存档都包含相同的文件,但使用不同的行尾格式:后者使用Unix(“LF”)格式,而另外两个使用DOS(“CR LF”)格式。通常,最好选择与当前平台对应的格式。如果下载的源代码使用DOS行尾格式,由于文件大小更小,建议选择7z格式。

选择构建系统

wxWidgets可以在所有平台上使用CMake进行构建。如果您更喜欢使用CMake,请遵循CMake的构建说明。

否则,请根据您的平台选择适当的说明:

• 对于Microsoft Windows下的原生wxMSW端口。
• 对于Linux和其他类Unix系统下的wxGTK。
• 对于macOS下的原生wxOSX端口。

上面提到的wxWidgets端口是主要的,但也存在其他变体,请参阅平台详细信息页面以获取完整列表。

构建您的应用程序

安装wxWidgets后,您需要设置应用程序以使用它进行构建。

与之前一样,如果您使用CMake,请遵循使用CMake构建应用程序的说明。

请注意,您可以使用提供的samples/minimal/CMakeLists.txt文件来测试使用CMake构建最小示例,以验证您的安装。

否则,请选择适合您的平台和构建系统的方法:

Unix,命令行

在任何类Unix系统上,包括macOS以及MSW下的Cygwin或MSYS2等类Unix环境,由单个源文件hello.cpp组成的非常简单的应用程序可以直接使用以下命令从命令行构建:

$ c++ -o hello hello.cpp wx-config --cxxflags --libs

请注意,在这种情况下,您必须使用wx-config来获取编译器和链接器的标志。使用此方法与samples/minimal/minimal.cpp一起是一个简单的检查wxWidgets是否正确安装并可以使用的方法,建议您尝试构建它,特别是如果您是wxWidgets的新手。

Unix,使用GNU Make

在Unix下构建更实际的应用程序时,通常会使用makefile进行构建。对于一个由hello.cpp和bye.cpp文件组成的程序,一个简单的makefile可能如下所示:

#使用的wx-config,可以在make命令行上覆盖。

# wx-config to use, may be overridden on make command line.
WX_CONFIG := wx-configWX_CXXFLAGS := $(shell $(WX_CONFIG) --cxxflags)
WX_LIBS := $(shell $(WX_CONFIG) --libs)OBJECTS := hello.o bye.ohello: $(OBJECTS)$(CXX) -o $@ $(OBJECTS) $(LDFLAGS) $(WX_LIBS) $(LIBS)$(OBJECTS): %.o: %.cpp$(CXX) -c -o $@ $(WX_CXXFLAGS) $(CXXFLAGS) $<

有关为GNU make编写makefile的更多信息,请参阅手册。同时请注意,如果您将上述makefile复制粘贴到自己的makefile中,需要将前导空格替换为TAB。

MSW,使用Microsoft Visual Studio

对于使用Microsoft Visual Studio IDE的应用程序,只需按照说明将提供的wxwidgets.props属性表文件添加到您的项目中,然后像平常一样构建项目即可。

Mac,使用Xcode

如果您想在Xcode项目中使用环境变量(如WXWIN),则需要执行以下操作:

•在Xcode中启用环境变量的使用:
defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO

•为与启动代理(适用于OSX 10.10及更高版本的应用程序)一起使用而设置变量

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict><key>Label</key><string>my.startup</string><key>ProgramArguments</key><array><string>sh</string><string>-c</string><string>
launchctl setenv WXWIN /Users/dconnet/devtools/wx/wxWidgets-3.1.5</string></array><key>RunAtLoad</key><true/>
</dict>
</plist>
其他IDE

如果您使用的是支持wxWidgets的IDE,例如Code::Blocks或CodeLite,请使用IDE向导。

如果您使用的是其他IDE,在Unix下,您应该分别运行wx-config --cxxflags和wx-config --libs命令,并将它们的输出分别复制到IDE中的“附加预处理器选项”和“附加链接器选项”字段中。在MSW系统下,您需要使用“使用wxWidgets手册设置”部分中的说明来配置IDE。

// END

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/765693.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubuntu20.04_PX4_1.13

说在前面&#xff1a;&#xff08;最好找一个干净的Ubuntu系统&#xff09;如果配置环境的过程中出现很多编译的错误或者依赖冲突&#xff0c;还是建议新建一个虚拟机&#xff0c;或者重装Ubuntu系统&#xff0c;这样会避免很多麻烦&#x1f490; &#xff0c; 安装PX4 1.13.2 …

小红书扫码登录分析与python实现

文章目录 1. 写在前面2. 接口分析3. 代码实现 【&#x1f3e0;作者主页】&#xff1a;吴秋霖 【&#x1f4bc;作者介绍】&#xff1a;擅长爬虫与JS加密逆向分析&#xff01;Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

变量的数据类型:基本数据类型和引用数据类型

数据分类 数据分为&#xff1a;静态数据、动态数据。 #静态数据 静态数据是指一些永久性的数据。一般是以文件的形式存储在硬盘上&#xff0c;比如文档、照片、视频等文件。 电脑关闭后&#xff0c;静态数据仍然还在。只要不主动删掉数据或者硬盘没损坏&#xff0c;这些数据…

SQL管理员高频面试问题

1.请你谈谈 MySQL 事务隔离级别&#xff0c;MySQL 的默认隔离级别是什么&#xff1f;为了达到事务的四大特性&#xff0c;数据库定义了 4 种不同的事务隔离级别&#xff1a; READ-UNCOMMITTED&#xff08;读取未提交&#xff09;&#xff1a;最低的隔离级别&#xff0c;允许脏…

代码随想录算法训练营第十七天(二叉树IV)| 110. 平衡二叉树、257. 二叉树的所有路径、404.左叶子之和(JAVA)

文章目录 110. 平衡二叉树解题思路源码 257. 二叉树的所有路径解题思路源码 404.左叶子之和解题思路源码 110. 平衡二叉树 给定一个二叉树&#xff0c;判断它是否是平衡二叉树 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7]输出&#xff1a;true 示例…

伊理威科技:抖音开网店新手刚做选啥品

在数字浪潮中&#xff0c;抖音不仅是展示才艺的舞台&#xff0c;更是创业者的新天地。新手若想在这片热土上开垦网店&#xff0c;选品便是首要课题。选择产品如同种下希望的种子&#xff0c;既要考量土壤肥沃度&#xff0c;也得预测风雨适宜期。 兴趣与专长是选品的罗盘。热爱所…

鸿蒙Harmony应用开发—ArkTS(@Extend装饰器:定义扩展组件样式)

在前文的示例中&#xff0c;可以使用Styles用于样式的扩展&#xff0c;在Styles的基础上&#xff0c;我们提供了Extend&#xff0c;用于扩展原生组件样式。 说明&#xff1a; 从API version 9开始&#xff0c;该装饰器支持在ArkTS卡片中使用。 装饰器使用说明 语法 Extend(UI…

光速论文能用吗 #媒体#知识分享#学习方法

光速论文是一个非常有效的论文写作、查重降重工具&#xff0c;它的使用非常简单方便&#xff0c;而且功能强大&#xff0c;是每个写作者必备的利器。 首先&#xff0c;光速论文具有强大的查重降重功能&#xff0c;能够快速检测论文中的抄袭部分&#xff0c;帮助作者避免不必要的…

面试算法-80-字符串相乘

题目 给定两个以字符串形式表示的非负整数 num1 和 num2&#xff0c;返回 num1 和 num2 的乘积&#xff0c;它们的乘积也表示为字符串形式。 注意&#xff1a;不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 “2”, num2 “3” 输出: “6…

集合(set)篇(一)

文章目录 5.1 集合的创建5.2 交集5.3 ^ 对称差集5.4 - 差集5.5 并集5.6 < 判断当前集合是否为另一个集合的子集5.7 5.8 > 判断当前集合是否为另一个集合的超集 5.1 集合的创建 在Python中&#xff0c;集合&#xff08;set&#xff09;是一个无序的不重复元素序列。你可以…

用BSP优化3D渲染

3D渲染引擎设计者面临的最大问题之一是可见性计算&#xff1a;只必须绘制可见的墙壁和物体&#xff0c;并且必须以正确的顺序绘制它们&#xff08;应该在远处的墙壁前面绘制近墙&#xff09; 。 更重要的是&#xff0c;对于游戏等应用程序来说&#xff0c;开发能够快速渲染场景…

Gin简介(Go web基础知识)

Gin简介 https://geektutu.com/post/quick-go-gin.html我是从这个网站上面摘录的&#xff0c;就是做个笔记&#xff0c;仅分享。膜拜极客兔兔大佬 Go特性&#xff1a; 快速&#xff1a;路由不使用反射&#xff0c;基于Radix树&#xff0c;内存占用少。 中间件&#xff1a;HT…

新概念英语1:Lesson11学习笔记

新概念英语1&#xff1a;Lesson11学习笔记 whose shirt is that?和whose is that shirt区别 “Whose shirt is that?” 和 “Whose is that shirt?” 这两个句子在意义上是相同的&#xff0c;都用于询问一个衬衫的所有者是谁。但在语法结构上存在一些细微的差异。 “Whos…

YOLO-v8-seg实例分割使用

最近需要实例分割完成一些任务&#xff0c;一直用的SAM(segment anything&#xff09;速度慢&#xff0c;找一个轻量分割模型。 1. YOLO-v8-seg使用 git clone https://github.com/ultralytics/ultralytics.git cd ultralytics vim run.py from ultralytics import YOLO# L…

【保姆级讲解C语言中的运算符的优先级】

C语言中的运算符的优先级 C语言中的运算符的优先级决定了表达式中运算符的计算顺序&#xff0c;下面列出了C语言中运算符的优先级&#xff0c;从最高到最低&#xff1a; 括号 ( )数组下标 []成员访问运算符 . 和 ->后缀递增 后缀递减 --前缀递增 前缀递减 --一元加减 -…

SSH 免密互信视频教程

上高速&#xff0c;B 站直达通道 https://www.bilibili.com/video/BV1L1421Q7t2/ SSH 免密互信视频教程 0、大前提&#xff0c;准备两台容器 cq-master1、cq-master2 配置 IP 地址、主机名映射 vim /etc/hosts 172.17.0.4 cq-master1 172.17.0.5 cq-master21、两台机器均设…

PTA7-2 括号匹配

检查一段C语言代码的小括号( )、 中括号 [ ] 和大括号{ } 是否匹配。 输入格式: 在一行中输入一段C语言代码&#xff0c;长度不超过1000个字符&#xff08;行末以换行符结束&#xff09;。 输出格式: 第一行输出左括号的数量和右括号的数量&#xff0c;中间以一个空格间隔。…

Socket.D v2.4.7 发布

Socket.D 是什么东东&#xff1f; 是基于"事件"和"语义消息""流"的网络应用协议。在微服务、移动应用、物联网等场景&#xff0c;可替代 http、websocket 等协议。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 目前&#xff1a…

Python虚拟环境conda的安装使用

文章目录 conda虚拟环境的详细步骤和注意事项&#xff1a;**安装Conda****创建Conda虚拟环境****激活Conda虚拟环境****安装Python包****管理Conda环境****其他优势与特性** 相较于venv&#xff0c;使用conda管理虚拟环境有以下优势&#xff1a;**性能****资源占用****其他性能…

nodejs安装使用React

1、react安装 首先&#xff0c;确保电脑上具备nodejs环境&#xff0c;之后用 winr 呼出控制台&#xff0c;输入 cmd 命令弹出cmd控制台&#xff08;小黑框&#xff09;之后在默认路径输入如下代码 npm i -g create-react-app //全局安装react环境无需选择特定文件夹安装成功后…