CodeBlocks编译wxWidgets过程,满满的坑。

这几天用过Dev C++后,继续在找找有没有好用的其它集成开发环境,经过使用后发现CodeBlocks的确是不一个不错的选择。免费,开放源代码,支持的编译器多,还支持跨平台开放,真是一个不错的选择。

下载了最新的CodeBlocks 16.01后,又看到了wxWidgets,因为本身就是用它来开放的,当然得试试,这一试的过程中,真是满满的坑,编译wxWidgets不下十次,整个过程中失败的情况也是五花八门。


坑1:每个不同版本的wxWidgets都需要指定的WinGW版本才可以编译,如wxWidgets 3.1.0需要TDM-GCC 4.9 and 5.1版才可以编译,wxWidgets 3.0.2需要TDM-GCC 4.7 and 4.8 才可以编译,一开始没注意到这个问题,用了CodeBlocks中自带的4.9.1去编译wxWidgets 3.0.2,结果自然是中途出错,被坑死了。


坑2:wxWidgets 3.1.0在CodeBlocks的向导中,还没有正式的支持,最高支持到了3.0.x,所以在编译完成wxWidgets  3.1.0后,开始使用CodeBocks向导来生成一个样例程序,结果编译失败,需要在项目的链接选项中修改库文件名为最新的才可以。libwxmsw30ud_core.a中的30需要改为31才可以。



坑3:这才是最坑人的,选择中文界面后,使用向导生成出来的文件然后不完整,而且wsx资源文件不能编辑。

//这是使用中文界面时,生成的代码中的一部分。

//(*AppHeaders
//*)

IMPLEMENT_APP(test332App);

bool test332App::OnInit()
{
    //(*AppInitialize
    //*)
    return wxsOK;  <--编译后说这个变量不存在,始终找不到原因。

}

后来一次无意中设置成英文界面后,再次使用向导生成了一个样例,神奇的事儿出现了。wsx资源文件也可以正常显示与编辑了。

//这是英文界面后,向导生成的部分代码,终于知道 wsxOK这个变量是怎么回事了,这汉化的事儿怎么会这么离谱,真无语。
bool test333App::OnInit()
{
    //(*AppInitialize
    bool wxsOK = true;
    wxInitAllImageHandlers();
    if ( wxsOK )
    {
    test333Dialog Dlg(0);
    SetTopWindow(&Dlg);
    Dlg.ShowModal();
    wxsOK = false;
    }
    //*)
    return wxsOK;

}


几个大坑终于踩完了,可以正常编译也程序了。


  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值