在 Code::Blocks 中构建 wxWidgets 程序

2024-04-02

我正在尝试建立这个wxWidgets示例程序 http://www.wxwidgets.org/docs/tutorials/hworld2.txt使用 Code::Blocks 12.11 但无论我尝试什么,构建都会失败。

例如,构建日志显示以下内容(该项目位于 X:\programming\c++\HelloWxWidgets 下):

mingw32-g++.exe -Wall -fExceptions -g -D_GNUWIN32_ -D_WXMSW_ -DwxUSE_UNICODE -D_WXDEBUG_ -IC:\libraries\wxWidgets-2.8.12.01\include -IC:\libraries\wxWidgets-2.8.12.01\contrib\include -IC:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\mswud -c X: \programming\c++\HelloWxWidgets\hworld2.cpp -o obj\Debug2\hworld2.o mingw32-g++.exe -LC:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib -o bin\Debug2\HelloWxWidgets.exe obj\Debug2\hworld2.o -static-libgcc C:\libraries\wxWidgets-2.8.12.01 \lib\gcc_lib\libwxmsw28ud.a C:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\libwxmsw28ud.a(monolib_window.o): 在函数中ZN8wxWindow6UpdateEv': C:\BuildAgent\work\wxPack\wxwidgets\build\msw/../../src/msw/window.cpp:1643: undefined reference toGdiFlush@0' C:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\libwxmsw28ud.a(monolib_window.o): 在函数中ZNK8wxWindow13GetTextExtentERK8wxStringPiS3_S3_S3_PK6wxFont': C:\BuildAgent\work\wxPack\wxwidgets\build\msw/../../src/msw/window.cpp:2132: undefined reference toGetTextExtentPoint32W@16' C:\BuildAgent\work\wxPack\wxwidgets\build\msw/../../src/msw/window.cpp:2133:对“GetTextMetricsW@8”的未定义引用

这些是我收到的一些构建消息

C:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\libwxmsw28ud.a(monolib_window.o)||在函数中ZN8wxWindow6UpdateEv':| C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\msw\window.cpp|1643|undefined reference toGdiFlush@0'| C:\libraries\wxWidgets-2.8.12.01\lib\gcc_lib\libwxmsw28ud.a(monolib_window.o)||在函数中ZNK8wxWindow13GetTextExtentERK8wxStringPiS3_S3_S3_PK6wxFont':| C:\BuildAgent\work\wxPack\wxwidgets\build\msw\..\..\src\msw\window.cpp|2132|undefined reference toGetTextExtentPoint32W@16'| C:\BuildAgent\work\wxPack\wxwidgets\build\msw....\src\msw\window.cpp|2133|对“GetTextMetricsW@8”的未定义引用|

这是完整的构建日志 http://pastebin.com/kWZLFAdE和所有的构建消息 http://pastebin.com/Je2PfZY8(顺便说一句,我没有 C:\BuildAgent 目录)

我在用wxPack 2.8.12 http://wxpack.sourceforge.net/Main/Downloads(安装在 C:\libraries\wxWidgets-2.8.12.01 中)和 GCC 4.7.2(与 C:\mingw 中的 Code::Blocks 分开安装,使用mingw-get http://sourceforge.net/projects/mingw/ )

以下是 Code::Blocks 中的构建选项

  • 编译器设置 > 定义 http://i47.tinypic.com/21d1s80.jpg
  • 链接器设置 http://i49.tinypic.com/28r1wo.png
  • 搜索目录 > 编译器 http://i45.tinypic.com/27yah6q.png
  • 搜索目录 > 链接器 http://i47.tinypic.com/34nfvdk.png
  • 搜索目录 > 资源编译器 http://i47.tinypic.com/25jw7kk.png

预先感谢您的帮助:)


好吧,我终于成功了:)

如果像我一样有人想在 Code::Blocks 下的(最初)控制台项目中使用 wxWidgets,我在此发布要遵循的过程。有了这个,任何人都应该至少能够构建/运行这个示例代码 http://www.wxwidgets.org/docs/tutorials/hworld2.txt在 Wind0ws 环境中:

  1. 我假设 Code::Blocks 和 MinGW 设置正确。
  2. 下载/安装 wxMSW 从http://www.wxwidgets.org/downloads/ http://www.wxwidgets.org/downloads/(就我而言,我下载了 wxMSW-2.8.12-Setup.exe 并将其安装在 C:\libraries\wxWidgets-2.8.12 中)
  3. 打开命令提示符,需要构建 wxWidgets,我将以使用 unicode 的静态链接、整体式调试构建为例(更多信息here http://wiki.codeblocks.org/index.php?title=WxWindowsQuickRef):

    cd /D C:\libraries\wxWidgets-2.8.12\build\msw

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

    :(mingw32-make 需要一些时间来构建库)

  4. 打开代码::块

  5. 创建一个新的控制台项目,或者如果您已经有一个控制台项目(并且您计划向其中添加 wxWidgets GUI),请打开它
  6. 右键单击项目 > 构建选项
  7. Here are the build options http://s23.postimage.org/4mjjohbaj/solution.png that I used for the Debug build. Code::Blocks build options for wxWidgets
  8. 构建并运行

[编辑] 除了 wx/wx.h 之外,还应该包含 wx/app.h

#include <wx/wx.h>
#include <wx/app.h>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Code::Blocks 中构建 wxWidgets 程序 的相关文章

  • 在动态事件处理程序中引用“this”

    在我的 myClass 类中 我使用 Reflection Emit 为 myClass 类成员之一动态编写事件处理程序 我已经成功地做到了这一点 现在 我想修改事件处理程序以调用 myClass 类中的实例方法之一 但是 我无法弄清楚如何
  • 如何将包含 5000 条记录的 Excel 文件插入到 documentDB 中?

    我有一个 Excel 文件 最初约有 200 行 我能够将 Excel 文件转换为数据表 并且所有内容都正确插入到 documentdb 中 Excel 文件现在有 5000 行 在插入 30 40 条记录后不会插入 其余所有行不会插入到
  • 起订量要求?违背了目的?

    是否需要虚拟化您想要模拟的所有属性访问器就违背了模拟的目的 我的意思是 如果我必须修改我的对象并虚拟化我想要模拟的每个访问器 我难道不能继承我的类并自己模拟它吗 你的问题非常有效 但如果你仔细想想 没有其他方法可以模拟课程 如果你采用一个接
  • 键盘加速器在 UWP 应用中停止工作

    我正在尝试将键盘加速器添加到 UWP 应用程序中的 CommandBar 菜单项 当应用程序启动时 这工作正常 但在我第一次打开溢出菜单后 加速器停止工作 这似乎不会发生在主要命令 菜单之外 上 只有溢出菜单内的辅助命令才会发生 此外 单击
  • 是否允许将类模板类型参数键入相同的名称?

    这似乎可以在 MSVC 中按预期编译甚至工作 但它是合法的 C 代码吗 它是否能保证执行此处所期望的操作 即将模板类型导出到结构体的同名用户 template
  • 访问“if”语句之外的变量

    我怎样才能使insuranceCost以外可用if陈述 if this comboBox5 Text Third Party Fire and Theft double insuranceCost 1 在 if 语句之外定义它 double
  • 无法从 Web api POST 读取正文数据

    我正在尝试从新的 Asp Net Web Api 中的请求中提取一些数据 我有一个像这样的处理程序设置 public class MyTestHandler DelegatingHandler protected override Syst
  • 如何在 Asp.net Gridview 列中添加复选框单击事件

    我在 asp 中有一个 gridview 其中我添加了第一列作为复选框列 现在我想选择此列并获取该行的 id 值 但我不知道该怎么做 这是我的 Aspx 代码
  • Paradox 表 - Oledb 异常:外部表不是预期的格式

    我正在使用 Oledb 从 Paradox 表中读取一些数据 我遇到的问题是 当我将代码复制到控制台应用程序时 代码可以工作 但在 WinForms 中却不行 两者都以 x86 进行调试 我实际上只是复制代码 在 WinForms 应用程序
  • 存储过程上的 OdbcCommand - 输出参数上出现“未提供参数”错误

    我正在尝试执行存储过程 通过 ODBC 驱动程序针对 SQL Server 2005 但收到以下错误 过程或函数 GetNodeID 需要参数 ID 但未提供该参数 ID 是我的过程的 OUTPUT 参数 在存储过程中指定了一个输入 mac
  • 无法加载文件或程序集“EntityFramework,版本=6.0.0.0”

    我究竟做错了什么 我该如何解决这个问题 我有一个包含多个项目的解决方案 它是一个 MVC NET 4 5 Web 应用程序 在调试模式下启动后调用其中一个项目时 出现此错误 导致此错误的项目具有以下参考 两个都是版本6 0 0 0 应用程序
  • 在简单注入器中注册具有多个构造函数和字符串依赖项的类型

    我正在尝试弄清楚如何使用 Simple Injector 我在项目中使用了它 注册简单服务及其组件没有任何问题 但是 当组件具有两个以上实现接口的构造函数时 我想使用依赖注入器 public DAL IDAL private Logger
  • 从事务范围调用 WCF 服务方法

    我有这样的代码 using TransactionScope scope TransactionScopeFactory CreateTransactionScope some methodes calls for which scope
  • 错误左值需要作为赋值C++的左操作数

    整个程序基本上只允许用户移动光标 如果用户位于给定的坐标范围 2 2 内 则允许用户键入输入 我刚刚提供了一些我认为足以解决问题的代码 我不知道是什么导致了这个问题 你能解释一下为什么会发生吗 void goToXY int int 创建一
  • 设计 Javascript 前端 <-> C++ 后端通信

    在我最近的将来 我将不得不制作一个具有 C 后端和 Web 前端的系统 要求 目前 我对此了解不多 我认为前端将触发数据传输 而不是后端 所以不需要类似 Comet 的东西 由于在该领域的经验可能很少 我非常感谢您对我所做的设计决策的评论
  • 不兼容的类型 - 是因为数组已经是指针吗?

    在下面的代码中 我创建一个基于书籍结构的对象 并让它保存多个 书籍 我设置的是一个数组 即定义 启动的对象 然而 每当我去测试我对指针的了解 实践有帮助 并尝试创建一个指向创建的对象的指针时 它都会给我错误 C Users Justin D
  • .NET JIT 编译的代码缓存在哪里?

    NET 程序首先被编译为 MSIL 代码 当它被执行时 JIT编译器会将其编译为本机机器代码 我想知道 这些JIT编译的机器代码存储在哪里 它只存储在进程的地址空间中吗 但由于程序的第二次启动比第一次快得多 我认为即使在执行完成后 该本机代
  • 相当于 C# 中 Java 的“ByteBuffer.putType()”

    我正在尝试通过从 Java 移植代码来格式化 C 中的字节数组 在 Java 中 使用方法 buf putInt value buf putShort buf putDouble 等等 但我不知道如何将其移植到 C 我尝试过 MemoryS
  • 如何设置 CMake 与 clang 交叉编译 Windows 上的 ARM 嵌入式系统?

    我正在尝试生成 Ninja makefile 以使用 Clang 为 ARM Cortex A5 CPU 交叉编译 C 项目 我为 CMake 创建了一个工具链文件 但似乎存在错误或缺少一些我无法找到的东西 当使用下面的工具链文件调用 CM
  • 新的 .NET 6 控制台模板中的 C# 函数重载不起作用

    我在尝试重载该函数时遇到错误Print object in the 新的 NET 6 C 控制台应用程序模板 https learn microsoft com en us dotnet core tutorials top level t

随机推荐

  • 在 Promise 链上使用 setTimeout

    在这里 我试图围绕承诺进行思考 在第一个请求中 我获取一组链接 在下一个请求中 我获取第一个链接的内容 但是我想在返回下一个承诺对象之前进行延迟 所以我使用setTimeout就可以了 但它给了我以下 JSON 错误 without set
  • 安装 Visual Studio 2012 Release Preview 后出现错误“LINK:致命错误 LNK1123:转换为 COFF 期间失败:文件无效或损坏”

    我已经安装了 Visual Studio 2012 Release Preview 看起来没问题 但现在当我尝试使用 Visual Studio 2010 编译 C 项目时 收到以下错误消息 链接 致命错误 LNK1123 转换为 COFF
  • C 中的科学记数法对于整数常量安全吗?

    一段时间以来 我一直使用科学计数法来表示常数中 10 的大幂 这样我就不必计算零 例如 define DELAY USEC 1e6 一位同事指出这并不安全 因为它不是整数并且不能保证始终等于 1000000exactly 文档似乎证实了这一
  • FParsec 的缩进、表达式、语句和 StackOverflowException - 错误

    我用 FParsec 测试缩进 根据这个实现 https github com stephan tolksdorf fparsec wiki Parsing indentation based syntax with FParsec 但是当
  • 比较两个字符串或对象并获取差异

    我想在我的网站上实现一种版本历史记录 并且我需要一种比较字符串或对象键的方法 例如 原始字符串 对象键 更快的棕色狐狸 修改后的字符串 对象键 The Quick Brown Fox 跳过了那只懒兔子 修订 添加跳过了那只懒兔子已删除er
  • Rails form_tag 表单编写 - 带非活动记录模型

    我是 Rails 的新手 我正在编写一个 couchrest rails 应用程序 因此我没有为此模型使用 activerecord 我刚刚发现这意味着 form for model 行不通的 我正在尝试弄清楚如何使用 form tag 但
  • Win32:如何使用CreateWindowExW()函数创建ListBox控件?

    我浏览过多个站点 文档和教程 他们都说相同 即任何控件都只不过是 Win32 API 中的一个窗口 因此可以使用CreateWindowExW 函数来创建一个ListBox主应用程序窗口上的控件 窗口 虽然我明白所有控件都是具有不同窗口的概
  • 将向量转换为逻辑矩阵

    是否有一个原生 R 函数可以接受输入向量并返回相应的二进制矩阵 其中该矩阵的列数与输入向量中的唯一值相同 例如 给定x lt 1 3 我想返回以下矩阵 1 2 3 1 1 0 0 2 0 1 0 3 0 0 1 功能contrasts接近了
  • Python解包线程安全吗?

    是一个类似的操作x y self mytuplePython 中的原子 或者可以self mytuple在分配期间被另一个线程修改 导致 x 引用 self mytuple 的第一个版本 而 y 引用第二个版本 我正在使用Python 3
  • Xamarin 部署不适用于 Android

    我已经设置了一个newXamarin Forms 项目 我想构建它并将其部署到模拟器或 Android 设备 但它不起作用 在Visual Studio的Output窗口中 显示以下错误 应用程序无法启动 确保应用程序具有 已安装到目标设备
  • Maven 资源插件复制文件

    我目前有一些 Maven 项目 当我安装项目时 我需要将所有文件从 conf 文件夹复制到目标文件夹 Project src conf lt FROM HERE gt lib target lt TO HERE gt 我在 pom xml
  • console.log() 已定义但未登录 IE - 空控制台

    Internet Explorer 8 和 9 中页面上的 Javascript打开开发者工具达到console log 其定义为 but 实际日志中没有出现任何内容 尝试过的事情 仔细检查alert s that console被定义并且
  • 如何使从天蓝色广告收到的 Jwt 令牌无效

    我有 2 个应用程序 一个是 Spring Boot 另一个是 Angular 目前 我已将我的应用程序与 azure ad 集成 从而通过它进行身份验证 现在的问题是 当用户从前端应用程序注销时 如果令牌未过期 如何使Azure AD提供
  • 卡夫卡保留政策

    假设我有一个多代理 在同一主机上运行 Kafka 设置 其中包含 3 个代理和 50 个主题 每个主题配置为具有 7 个分区和 3 的复制因子 我有 50GB 内存可用于 kafka 并确保 Kafka 日志永远不会超过此内存量 因此我想配
  • 在子控制器中查看控制器框架大小

    我正在实施 UIViewcontroller 遏制 在下面的示例中 我在根控制器中设置了子控制器的帧大小 子视图显示为我设置的大小 但是当我检查它在 container1 内的边界时 它报告的大小与我设置的大小不同 根控制器 容器 void
  • MySQL 排序规则:utf8mb4_unicode_ci 与“utf8mb4 - 默认排序规则”

    请帮助我理解 MySQL Workbench 中列出的排序规则之间的差异 utf8mb4 unicode ci vs utf8mb4 default collation 附注大家都推荐使用utf8mb4 unicode ci 如果这如此受欢
  • 如何使用Python读取文件夹中的文件数量?

    如何使用Python读取特定文件夹中的文件数量 示例代码会很棒 要非递归地计算文件和目录 您可以使用os listdir http docs python org library os html os listdir并取其长度 要递归计算文
  • jstree选择节点

    问候 我正在使用 jsTree 生成分层数据 JsTree生成如下 function industries tree data type json opts url Admin GetIndustries 它可以找到并且 jsonresul
  • 在phonegap应用程序中导出sqlite数据库

    我们有一个使用 cordova phonegap 和他自己的 sqlite DB 的应用程序 我的意思是我们没有安装外部 sqlite 我们需要将数据库备份到 SD 内存中 但将 sqlite 文件从 PhoneGap 导出到 SD 时遇到
  • 在 Code::Blocks 中构建 wxWidgets 程序

    我正在尝试建立这个wxWidgets示例程序 http www wxwidgets org docs tutorials hworld2 txt使用 Code Blocks 12 11 但无论我尝试什么 构建都会失败 例如 构建日志显示以下