MinGW编译wxWidgets中的问题及解决方法
其实网上wxWidgets编译相关的博文,都没写到关键点上,泛泛而谈——就写了执行几个命令,就万事大吉了! 维基百科上的这个页面讲解了编译中可能遇到的各种问题及解决办法。比较懒,不想翻译。wxWidgets中文资料不多,英文的帮助、开发手册、书籍比较全面细致,如果要用wxWidgets就不得不阅读这些英文资料。如果编译wxWidgets的英文文档都看不懂,还是不要用wxWidgets算了。我以前用MFC、WinForm、WPF做Windows界面,但是跨不了平台;虽然.net这回真正开源了,但是WinForm和WPF的移植计划还没摆上台面。此外WinForm应该不会移植到Linux上了,WinForm的实现依赖了windows内核中对图形界面以及消息的处理。wxWidgets与MFC在消息处理、对话框模式图形程序、Frame-View-Document模式图形程序等方面比较像。此外wxWidgets更加灵活,也更加面向对象,没有那么多宏、那么#define常量;事件及事件参数的处理更像WinForm;wxWidgets还支持界面布局。所以决定学学wxWidgets,知识跨度也不大。
我在编译中就遇到了两个问题。
第一,MinGW默认用自带的sh.exe这个SHELL
mingw32-make -f makefile.gcc BUILD=release UNICODE=1 SHARED=0
sh.exe跟windows命令行的很多语法和内置命令不一样。所以直接用上面的命令会出现“找不到指定的文件”的问题。
这个的解决版本就是把其它版本的MinGW和MYSYS从系统的Path变量中去除,只留下要用一个。同时要在编译命令中加上SHELL=CMD.exe.
mingw32-make SHELL=CMD.exe -f makefile.gcc BUILD=release UNICODE=1 SHARED=0
第二,编译到最后,链接的时候出现“输入行太长”。
下面是我编译过程中出现问题的命令。
ar rcu C:\wxWidgets\lib\gcc_lib\libwxmsw30ud_core.a corelib_dummy.o corelib_event.o corelib_fs_mem.o corelib_msgout.o corelib_utilscmn.o corelib_main.o corelib_mslu.o corelib_volume.o corelib_activex.o corelib_app.o corelib_bitmap.o corelib_brush.o corelib_caret.o corelib_clipbrd.o corelib_colour.o corelib_cursor.o corelib_data.o corelib_dc.o corelib_dcclient.o corelib_dcmemory.o corelib_dcprint.o corelib_dcscreen.o corelib_dialup.o corelib_dib.o corelib_display.o corelib_enhmeta.o corelib_font.o corelib_fontenum.o corelib_fontutil.o corelib_gdiimage.o corelib_gdiobj.o corelib_gdiplus.o corelib_graphics.o corelib_icon.o corelib_imaglist.o corelib_minifram.o corelib_nonownedwnd.o corelib_dataobj.o corelib_dropsrc.o corelib_droptgt.o corelib_oleutils.o corelib_safearray.o corelib_palette.o corelib_pen.o corelib_popupwin.o corelib_printdlg.o corelib_printwin.o corelib_region.o corelib_renderer.o corelib_settings.o corelib_textmeasure.o corelib_tooltip.o corelib_toplevel.o corelib_uiaction.o corelib_utilsgui.o corelib_utilswin.o corelib_uxtheme.o corelib_window.o corelib_helpchm.o corelib_helpwin.o corelib_automtn.o corelib_uuid.o corelib_clrpickerg.o corelib_collpaneg.o corelib_filepickerg.o corelib_fontpickerg.o corelib_generic_statusbr.o corelib_prntdlgg.o corelib_msw_accel.o corelib_anybutton.o corelib_artmsw.o corelib_msw_bmpbuttn.o corelib_msw_button.o corelib_msw_checkbox.o corelib_msw_choice.o corelib_colordlg.o corelib_combo.o corelib_msw_combobox.o corelib_msw_control.o corelib_msw_dialog.o corelib_dirdlg.o corelib_dragimag.o corelib_evtloop.o corelib_filedlg.o corelib_frame.o corelib_msw_gauge.o corelib_headerctrl.o corelib_iniconf.o corelib_msw_listbox.o corelib_msw_listctrl.o corelib_mdi.o corelib_msw_menu.o corelib_menuitem.o corelib_metafile.o corelib_msgdlg.o corelib_nativdlg.o corelib_nativewin.o corelib_msw_notebook.o corelib_access.o corelib_ownerdrw.o corelib_panel.o corelib_progdlg.o corelib_msw_radiobox.o corelib_msw_radiobut.o corelib_richmsgdlg.o corelib_msw_scrolbar.o corelib_msw_slider.o corelib_msw_spinbutt.o corelib_spinctrl.o corelib_msw_statbmp.o corelib_msw_statbox.o corelib_statusbar.o corelib_msw_statline.o corelib_msw_stattext.o corelib_msw_toolbar.o corelib_msw_textctrl.o corelib_textentry.o corelib_msw_tglbtn.o corelib_treectrl.o corelib_msw_checklst.o corelib_msw_fdrepdlg.o corelib_fontdlg.o corelib_accelcmn.o corelib_accesscmn.o corelib_anidecod.o corelib_affinematrix2d.o corelib_appcmn.o corelib_artprov.o corelib_artstd.o corelib_arttango.o corelib_bmpbase.o corelib_bmpbtncmn.o corelib_bookctrl.o corelib_btncmn.o corelib_cairo.o corelib_checkboxcmn.o corelib_checklstcmn.o corelib_choiccmn.o corelib_clipcmn.o corelib_clrpickercmn.o corelib_colourcmn.o corelib_colourdata.o corelib_combocmn.o corelib_cmdproc.o corelib_cmndata.o corelib_containr.o corelib_cshelp.o corelib_ctrlcmn.o corelib_ctrlsub.o corelib_dcbase.o corelib_dcbufcmn.o corelib_dcgraph.o corelib_dcsvg.o corelib_dirctrlcmn.o corelib_dlgcmn.o corelib_dndcmn.o corelib_dobjcmn.o corelib_docmdi.o corelib_docview.o corelib_dpycmn.o corelib_dseldlg.o corelib_effects.o corelib_fddlgcmn.o corelib_filectrlcmn.o corelib_filehistorycmn.o corelib_filepickercmn.o corelib_fontpickercmn.o corelib_fldlgcmn.o corelib_fontcmn.o corelib_fontdata.o corelib_graphicc.o corelib_fontenumcmn.o corelib_fontmap.o corelib_fontutilcmn.o corelib_framecmn.o corelib_gaugecmn.o corelib_gbsizer.o corelib_gdicmn.o corelib_geometry.o corelib_gifdecod.o corelib_graphcmn.o corelib_headercolcmn.o corelib_headerctrlcmn.o corelib_helpbase.o corelib_iconbndl.o corelib_imagall.o corelib_imagbmp.o corelib_image.o corelib_imagfill.o corelib_imaggif.o corelib_imagiff.o corelib_imagjpeg.o corelib_imagpcx.o corelib_imagpng.o corelib_imagpnm.o corelib_imagtga.o corelib_imagtiff.o corelib_imagxpm.o corelib_layout.o corelib_lboxcmn.o corelib_listctrlcmn.o corelib_markupparser.o corelib_matrix.o corelib_menucmn.o corelib_modalhook.o corelib_mousemanager.o corelib_nbkbase.o corelib_overlaycmn.o corelib_ownerdrwcmn.o corelib_paper.o corelib_panelcmn.o corelib_persist.o corelib_pickerbase.o corelib_popupcmn.o corelib_preferencescmn.o corelib_prntbase.o corelib_quantize.o corelib_radiobtncmn.o corelib_radiocmn.o corelib_rearrangectrl.o corelib_rendcmn.o corelib_rgncmn.o corelib_scrolbarcmn.o corelib_settcmn.o corelib_sizer.o corelib_slidercmn.o corelib_spinbtncmn.o corelib_spinctrlcmn.o corelib_srchcmn.o corelib_statbar.o corelib_statbmpcmn.o corelib_statboxcmn.o corelib_statlinecmn.o corelib_stattextcmn.o corelib_stockitem.o corelib_tbarbase.o corelib_textcmn.o corelib_textentrycmn.o corelib_textmeasurecmn.o corelib_toplvcmn.o corelib_treebase.o corelib_uiactioncmn.o corelib_valgen.o corelib_validate.o corelib_valtext.o corelib_valnum.o corelib_wincmn.o corelib_windowid.o corelib_wrapsizer.o corelib_xpmdecod.o corelib_busyinfo.o corelib_buttonbar.o corelib_choicdgg.o corelib_choicbkg.o corelib_combog.o corelib_dcpsg.o corelib_dirctrlg.o corelib_dragimgg.o corelib_filectrlg.o corelib_headerctrlg.o corelib_infobar.o corelib_listbkg.o corelib_logg.o corelib_markuptext.o corelib_msgdlgg.o corelib_numdlgg.o corelib_progdlgg.o corelib_preferencesg.o corelib_printps.o corelib_renderg.o corelib_richmsgdlgg.o corelib_scrlwing.o corelib_selstore.o corelib_spinctlg.o corelib_splitter.o corelib_srchctlg.o corelib_statbmpg.o corelib_stattextg.o corelib_textdlgg.o corelib_tipwin.o corelib_toolbkg.o corelib_treectlg.o corelib_treebkg.o corelib_vlbox.o corelib_vscroll.o corelib_xmlreshandler.o
要不编译出来的n多obj文件链接成libwxmsw30ud_core.a库,这个命令超过windows命令行要求的最长命令了,所以执行不了。上面的命令还是我手动修改过的,要不然更长,这就已经一页word文档放不下了。
这个问题的解决应该灵活处理,维基上说Replace $(MONOLIB_OBJECTS) with gcc_mswu\monolib*.o。这是编译成一个库的时候这个地方肯定会出现问题。但是我还是编译成分散的库,而是在链接libwxmsw30ud_core.a时出现的问题。那么改法就不一样了。
在下面那个地方把$(CORELIB_OBJECTS)替换成gcc_mswud\corelib*.o。注意目录名和文件名前缀,我是在编译debug版本时出现的问题,所以目录是gcc_mswud。注意编译完成之后再替换回来,如果不替换release版本也从debug版本的目录中找obj文件进行链接了。
makefile中定义了 $(BASELIB_OBJECTS)、$(NETLIB_OBJECTS)、$(CORELIB_OBJECTS)、$(MONOLIB_OBJECTS),那个出问题了改那个,不要死抄。
MinGW编译wxWidgets中的问题及解决方法的更多相关文章
- [转]MinGW编译wxWidgets问题
其实利用MinGW编译wxWidgets是一件挺简单的事情,但是最近在编译的时候遇到一些问题,并找到解决方案,因此在此分享一下个人经验.编译出错的原因是由于安装了MSYS的缘故. 错误信息类似于如 ...
- Ant编译utf-8非法字符:/65279 解决方法
原文链接:http://blog.csdn.net/xiyuan1999/article/details/5989336 Ant编译utf-8非法字符:/65279 解决方法 使用ant编译j ...
- [转载]Ubuntu 14.04中root 密码忘记解决方法
Ubuntu 14.04中root 密码忘记解决方法 方法一: 如果用户具有sudo权限,那么直接可以运行如下命令: #sudo su root #passwd #更改密码 或者直接运行sudo ...
- 服务器个人环境下pytorch0.4.1编译warp-ctc遇到的问题及解决方法
一.关于warp-ctc CTC可以生成一个损失函数,用于在序列数据上进行监督式学习,不需要对齐输入数据及标签,经常连接在一个RNN网络的末端,训练端到端的语音或文本识别系统.CTC论文 CTC网络的 ...
- (转)ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
早上同事用PL/SQL连接虚拟机中的Oracle数据库,发现又报了"ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务"错误,帮其解决后,发现很多人遇到过这样的问 ...
- ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法
ORA-01652:无法通过128(在表空间temp中)扩展temp段 解决方法 (2016-10-21 16:49:53) 今天在做一个查询的时候,报了一个"ORA-01652无法通过 ...
- XCode编译文件过多导致内存吃紧解决方法
XCode编译文件过多导致内存吃紧解决方法 /Users/~~/Library/Developer/Xcode/DerivedData 1) 然后 找到编译文件 删除 就好了哦 快去试试看吧
- Oracle中的 UPDATE FROM 解决方法
转:http://www.cnblogs.com/JasonLiao/archive/2009/12/23/1630895.html Oracle中的 UPDATE FROM 解决方法 在表的更新操作 ...
- PowerShell因为在此系统中禁止执行脚本解决方法
PowerShell因为在此系统中禁止执行脚本解决方法 在Powershell直接脚本时会出现: 无法加载文件 ******.ps1,因为在此系统中禁止执行脚本.有关详细信息,请参阅 " ...
随机推荐
- springmvc笔记(来自慕课网)
1.准备工作:springmvc相关的jar包. 2.这里我们先用eclipse来操作. 首先看一个接口编程,后面的所有知识点都是通过这个接口编程引出的. OneInterface.java pack ...
- adb bugreport > d:/bug.txt
adb bugreport > d: 快速下载anr等bug日志
- ListView中内容的动画效果
LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果,可以在XML文件中设置,亦可以在Java代码中设置. 一种直接在 ...
- java环境变量完整版
jdk默认安装 Key: JAVA_HOME(新建) Value: C:\Program Files\Java\jdk1.8.0_25 Key: Path(编辑) Value: %JAVA_HOME% ...
- JavaScript内置对象
对象概述 JavaScript是一种基于对象的脚本语句,而不是面向对象的编程语言.对象就是客观世界存在的实体,具有属性和方法两方面特性. 访问对象的属性和方法的方式如下: 对象名.属性 对象名.方法名 ...
- 百度校招面试经历及总结(已发offer)
听说发面经可以攒rp,希望早点给我确定的offer通知,也希望看到这个面经的小伙伴能顺利拿到心仪的offer~ 职位:机器学习-数据挖掘工程师 9.15 上午11点 一面 1.介绍项目 2.考研意向, ...
- Flex4/Flash开发在线音乐播放器 , 含演示地址
要求 必备知识 本文要求基本了解 Adobe Flex编程知识和JAVA基础知识. 开发环境 MyEclipse10/Flash Builder4.6/Flash Player11及以上 演示地址 演 ...
- opecv轮廓匹配,可以用于去噪
一个跟轮廓相关的最常用到的功能是匹配两个轮廓.如果有两个轮廓,如何比较它们;或者如何比较一个轮廓和另一个抽象模板. 矩 比较两个轮廓最简洁的方式是比较他们的轮廓矩.这里先简短介绍一个矩的含义.简单的说 ...
- 怎样用VB编写.DLL动态链接库文件
VB一般可以生成两种特殊的DLL,一个是ActiveX DLL和ActiveX Control(*.ocx).这两种DLL都是VB支持的标准类型,在VB自身的例子中有,你可以参考.更详细的介绍可以参考 ...
- Spring 注解实体类中非数据库字段属性
解决办法:在属性的get方法上加上一段注解标识它是临时属性,不是数据库字段就OK @Transient public List<Reverts> getChildList() { retu ...