CodeBlocks20.03配置wxWidgets

背景 - 现在是2023年

1. 很多年前,下载使用CodeBlocks就发现里面有自带的wxWidgets Project的项目,然而一路Next下去出来的程序根本就不能运行,心有不甘;

2. 前几年,用python做小工具的时候,界面用的wxPython,也花了挺多的时间学习wxPython;

3. 去年,由于心中执念,又尝试在CodeBolcks中配置wxWidgets,以往的文章或教程都建议自己去编译,但在编译的过程中障碍重重,无法顺利前进,残念...

4. 执念更甚,3月时花了一些时间,查了不少资料,才发现还有一条不需要自己编译的路,但仍然遇到不少的阻碍,最后堪堪能够在CodeBlocks 13上运行wxWidgets3.0.5的模板程序。然而5分钟后,CodeBlocks 20就再次跳出一堆堆的Error,再次残念...

5. 放下一段时间再回来,这一次终于弄得清楚明白。

主要参考资料

名称说明
windows下的wxWidgets环境配置这个是有效的下载预编译好的dll的操作,对应Codeblocks 13 也是自己实现的主要参考
使用CodeBlocks搭建wxWidgets C++ GUI图形化开发环境这是CB 20.03在linux下的配置 wx 3.1.7, 2022-10比较新,但linux编译wx的操作无法直接在Win11上使用
wxWidgets 在 Windows 下开发环境配置本文基于 CodeBlocks (16.01) 和 wxWidgets (3.0.2) 搭建 使用的是自己下载源码包,新建bat进行编译 并列出几个编译遇到的问题

环境

win11 x64, CodeBlocks 20.03, wxWidgets 3.0.5

步骤

1.下载安装CodeBlocks

官网:Code::Blocks - Code::BlocksThe IDE with all the features you need, having a consistent look, feel and operation across platforms.icon-default.png?t=N7T8http://www.codeblocks.org下载安装文件直接安装即可,CodeBlocks跨平台,基于wxWidgets,小而快;

2.下载已经预编译好的wx

新人上手建议使用已经编译好的DLL,已编译好的库涵盖的lib更多,参考某些网友说的如果自己编译release和debug两个版本编译得一个多小时, 而且编译出来的lib还不全,而对于我自来说,压根就没有编译通过;

另外,自己编译还涉及到make的用法,这个虽然在linux C++课程上的确是学习过,但太久没有操作,早就没什么概念了,跟着别人的不全的文章进行操作,走着走着就发现走不通了,这样就增加了入门的门槛,毕竟我们现在只是配置工具的事!

官网:Downloads - wxWidgetsicon-default.png?t=N7T8https://www.wxwidgets.org/downloads/页面上注意,自己不编译则不需要下载上面的Source Code,直接点Binaries去下载就可以了。这里没敢下最新的,于是选择的是旧的Stable的版本3.0.5 。

从这里也可以看到wxWidget的与时俱进,最下面的2.8的版本可是没有给windows的Binaries的。

点击后会弹出对应不同编译器,选择Codeblocks 20默认配置的MinGW-8.1,里面必须下载3个文件,分别是头文件 Header Files,开发文件 Development Files和库文件Release DLLs。

下载后解压,这里就出现2个文件夹,分别include和lib ,把它们可以放到Codeblocks文件夹,后面就开始Codeblocks的配置了。

3.CodeBlocks配置

3.1 全局变量 Global variable Editor

由菜单Settings->Global Variable Editor ,全局变量就是告诉CodeBlocks你的wxWidget目录在哪,并且include目录和lib的目录在什么位置,设置对了CodeBlocks就能找得到,程序才能运行。

注意,

  1. 电脑上可能有几个版本的CodeBlocks,但配置文件好像是共用的,如果要在不同的版本下,需要添加新的 SET;
  2. 也可能有不同的编译器,比如老一点版本的GCC 492,VC++ 8.0的,VC++ 12.0 等等,所以还要新建或Clone Varible;

3.2 编译器 Compiler的配置

当电脑上只有一版CodeBlocks且GCC的编译器只有一版,并且已经正常编译运行C++程序的基础上,对于wxWidgets的配置内容是很简单的,只需要把 Settings->Compiler->Linker Settings添加lib目录下所有.a文件就可以了。

4. CodeBlocks新建项目

在前面几项都OK的基础上,就可以新建项目了。在这个过程中,需要有一些注意事项:

  1. 新建 wxWidgets Project
  2. Welcome页可以跳过
  3. 选择wxWidgets版本,这一步当然是根据你前面下载的wxWidgets是什么版本就必须对应这个版本,Codeblocks 13里只支持到3.0.x , 20则支持到3.1.x 。所以如果Codeblocks版本比较旧的情况下,wxWidgets也不要下最新的
  4. Project title 随意,path也没有特别要注意的
  5. 作者信息页,可以不填
  6. GUI Builder 选择wxSmith,这是CodeBlocks已经集成好了的,至于Dialog还是Frame需要根据自己的需求来定,我们先用Frame
  7. 然后到了select the location of wxWidgets,如果电脑上只有一版且一个编译器版本的wxWidgets,那么可以像其他作者写的 wxWidgets location 设置为 $(#wx);但一旦电脑上有2个wxWidgets的文件夹(例如这里有wx3.0.5 for GCC8.1和wx3.0.5 for GCC4.92)那就需要选择对应的文件夹了
  8. 选择编译器,同上,如果只有一个默认的GCC,直接Next,否则要选择对应的那一个
  9. 在select various configuration中,建议是只勾1和3,即Use wxWidgets DLL和Enable unicode
  10. 下一页,select additional libraries,附加库,可不选,也可以直接全选中,然后Finish就好了

5. 编译运行及问题

基本上按上面的操作,就可以跑起来了。但电脑上多个Codeblocks,多个set,varible的情况下,还是可能出错些问题,如下

||=== Build: Debug in wxTest01 (compiler: GNU GCC Compiler) ===|
ld.exe||cannot find -lwxmsw30ud_dbgrid|
ld.exe||cannot find -lwxbase30ud_odbc|
ld.exe||cannot find -lwxmsw30ud_qa|
||error: ld returned 1 exit status|
||=== Build failed: 4 error(s), 0 warning(s) (0 minute(s), 8 second(s)) ===|

这时不需要太紧张,

  1. 点到Projects,在workspace中右键当前的项目, --> Build Options...
  2. 在Project build options中选择第二页 Linker settings;
  3. 将已经存在的lib先clear,再到正确的文件夹下重新Add,并按提示保存为相对路径
  4. 点击OK退出

然后,程序就可以进行编译并运行了~

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
您好!要在 Code::Blocks 20.03配置 ege 图形库,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了 Code::Blocks 20.03。如果尚未安装,请先下载和安装。 2. 接下来,下载 ege 图形库的最新版本。您可以在 CSDN 上搜索并下载 ege 图形库。 3. 下载完成后,将解压后的 ege 文件夹放置在一个您喜欢的位置。 4. 打开 Code::Blocks,创建一个新项目或打开现有项目。 5. 在 Code::Blocks 的菜单栏中选择 "Settings"(设置)> "Compiler..."(编译器)。 6. 在 "Selected compiler"(选择编译器)下拉菜单中,选择您正在使用的编译器。 7. 在 "Selected compiler"(选择编译器)选项卡中,点击 "Linker settings"(链接器设置)。 8. 在 "Other linker options"(其他链接器选项)文本框中添加以下命令:-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 9. 点击 "OK" 保存更改,并关闭设置窗口。 10. 接下来,在 Code::Blocks 的菜单栏中选择 "Project"(项目)> "Build options..."(构建选项)。 11. 在 "Selected project"(选择项目)选项卡中,选择您正在使用的编译器。 12. 在 "Compiler settings"(编译器设置)选项卡中,点击 "Other options"(其他选项)。 13. 在 "Other options"(其他选项)文本框中添加以下命令:-lbgi -lgdi32 -lcomdlg32 -luuid -loleaut32 -lole32 14. 点击 "OK" 保存更改,并关闭构建选项窗口。 现在,您应该已经成功配置了 ege 图形库。您可以尝试编写一个简单的程序来测试它是否正常工作。例如: ```cpp #include <graphics.h> int main() { initgraph(); // 初始化图形模式 circle(320, 240, 100); // 绘制一个圆形 getch(); // 等待用户按键 closegraph(); // 关闭图形模式 return 0; } ``` 希望这可以帮助到您!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值