打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
windows下的Code::Blocks + minGW + wxWidgets 开发环境搭建
  1. 安装IDE Code::Blocks主页:www.codeblocks.org选择集成minGWwindows安装版本。安装过程建议选择默认设置。安装过程中注意两点:默认情况下Code::Blocks安装文件会选择同时安装minGW,不要改变这个选择;最后是汉化了。上codeblocks的论坛到这里下汉化文件

    Code::Blocks > User forums > General (but related to Code::Blocks) > [Download]Newest language template file (for CB and Plugins)

    下载mo格式的。下载解压放在D:\CodeBlocks\share\CodeBlocks下新建一个文件夹locale有的话不用再重建。在里面再建一新文件夹zh_CN,将mo文件放进去。这时候就开始启动codeblocks了。在settings里面选择environment->view->internationalization.将这项打勾在右边下拉菜单里选中文。重启codeblocks就是中文了,当然不完全汉化。那些插件还是会有英文的。

  2. 下载最近的稳定版wxWidgets源代码  http://www.wxwidgets.org/downloads/是 wxWidgets的下载页面。下载Source Archives中的wxAll,里面包含了所有平台的源代码或者第二小节wxMSW是windows安装版,wxWidgets的解压或者安装目录不要 带上空格,典型的最好不要装在"Program Files"目录下,这是因为gcc编译时无法找到带空格路径,如果你想安装到"Program Files",请配置编译路径为"Progra~1"。假设wxWidgets目录在"C:\wxWidgets-2.8.7"目录
  3.  如果下载的是没有集成minGW的Code::Blocks
    下载和安装MinGW,在http://www.mingw.org/点 左边的Download,点它就到了MinGW在Sourceforge上的下载页面。上面有一个文件列表,一个最为简单的方法是下载个向导,它帮你下你 需要的,这个向导是Automated MinGW Installer,在第一行。自己动手话我们主要要下载的东西的关键字有:
    gcc-core                     GCC的核心
    gcc-g++                    GNU C++编译器
    gdb                           GNU调试器
    mingw32-make           GNU Make,我们需要它来自动化编译多文件的程序
    mingw-runtime           MinGW运行时环境,包括C头文件、一些静态库、平台专有起始代码等
    binutils                      编译、链接等必需的一些工具
    w32api                      Windows API的头文件和静态库,没有它们根本无法编译出GUI程序
    mingw-utils                小工具
    其 中gcc-core和gcc-g++是在GCC Version 4一栏里的,binutils在GNU Binutils一栏里,mingw32-make在 GNU Make一栏里,mingw-runtime在GNU Source-Level Debugger一栏里,w32api 在MinGW API for MS-Windows一栏里, mingw-runtime 在MinGW Runtime一栏里,很简单的一一对应,各自选最新的版本下载吧。
  4. MinGW和wxWidgets的环境配置
    下 载下来的这些tar.gz,tar.bz2等包,用WinRAR或7-zip(其中.lzma只能用7-zip)都是可以解压的。把它们都解压到一个文件 夹,比如C:\MinGW。注意,解压出来的结果,应该是在C:\MinGW下出现bin、include、lib、libexec、doc、man、 info等文件夹
    编译下面脚本,命名为evnset.bat,可以根据实际情况进行微调。这个脚本已经设置了wxWidgets-2.8.7的所在地。
    set MinGW_PATH=C:\MinGW
    set MinGW_SubBin=i686-pc-mingw32
    set MinGW_Ver=4.2.1-sjlj
    set wx_PATH=C:\wxWidgets-2.8.7
    set PATH=%PATH%;%MinGW_PATH%\bin;%MinGW_PATH%\%MinGW_SubBin%\bin
    set LIBRARY_PATH=%MinGW_PATH%\lib;%MinGW_PATH%\lib\gcc\mingw32\%MinGW_Ver%
    set C_INCLUDE_PATH=%MinGW_PATH%\include
    set CPLUS_INCLUDE_PATH=%MinGW_PATH%\include;%MinGW_PATH%\lib\gcc\mingw32\%MinGW_Ver%\include;%MinGW_PATH%\lib\gcc\mingw32\%MinGW_Ver%\include\c++;%MinGW_PATH%\lib\gcc\mingw32\%MinGW_Ver%\include\c++\backward;%wx_PATH%\include;%wx_PATH%\contrib\include;
    这个脚本临时地设置了PATH(系统到哪里去找可执行文件)、LIBRARY_PATH(系统到哪里去找需要的库文件),C_INCLUDE_PATH(系统到哪里去C头文件)、CPLUS_INCLUDE_PATH(系统到哪里去C++头文件)。
    如 果你下载的是不同版本的gcc,你需要自行检查MinGW内部的文件夹结构是否像上面这个脚本所勾勒的一样,你可能需要根据实际情况加以调整。同时注意一 下libexec\gcc\mingw32\版本号,这下面有cc1和cc1plus,MinGW在有些系统上可能会找不到它们。
    你可以把脚本放 到一个专用目录,比如:D:\wxBuildPack,接下来把这个脚本所在的文件夹加到全局的环境变量中。右击我的电脑-属性-高级-环境变量。在用户 变量或者系统变量中找到PATH,然后编辑,在所有其他路径的最后面,先加上;作为分隔符,然后加上D:\wxBuildPack(刚刚放 evnset.bat的文件夹)。最后,一路确定,环境变量就设好了。
    现在测试一下:开始,运行。输入cmd,这样弹出命令行提示符窗口,输入 evnset,如果显示出了脚本中的那一大堆命令,就说明大环境搭好了。注意,evnset所设置的路径,只作用于当前窗口,如果你另开一个窗口,你需要 重新evnset。你可以试着用它编译一个最简单的HelloWorld程序了。假设当前目录下你的HelloWorld源文件为main.cpp,内容 为:

    1. #include <iostream>  
    2. using namespace std;  
    3. int main()  
    4. {  
    5.     cout << "Hello World!" << endl;  
    6.     cin.get();  
    7.     return 0;  
    8. }  

    在运行完evnset后,输入:g++ main.cpp –o main.exe,就应该能生成一个main.exe了
  5. 编译wxWidgets
    在 wxWidgets的根目录,散落着一些readme-平台和install-平台文本文件,其中平台包括msw(Microsoft Windows的缩写),gtk(Linux下的GTK+框架)和mac(苹果Mac OS)。install就是该平台下编译wxWidgets的指引。在编译之前,最好先看一看。不过它们在记事本下看起来就好像从来不换行一样。这是因为 它们是按照linux下的换行方式,比Windows少一个\r,Windows就认不出来哪换行了。不过Word还是认得出来的,用Word或者ue打 开。INSTALL-MSW.txt 中Basic options 和Advanced options两节是非常重要的,这里面的项可以让你自己根据自己的需要定制wxWidgets。最基本的选项有:
    l  UNICODE         如果你需要处理中文,或者你需要unicode,就将它设为1。
    l  DEBUG             设为1为debug版(包含调试信息),0为release版(体积小)
    l  SHARED           设为1你将来写的wxWidgets程序运行会需要dll(dll 10M左右,你的程序自身大小就很小,可能只有几百k),0则可以独立运行,但自身体积起码是M。
    l  MONOLITHIC         设为1则将wxWidgets编译为一个单一的大的库文件,0则将其内部一个个小库分别编译,得到的是很多个小的库文件。建议设为1,这样链接库的时候方 便。如果你对最终发布的程序有体积要求,或者希望精细地选择链接什么不了链接什么,可以设为0。
    如果你不想编译时手工带上这些编译选项,你可以在wxWidgets\build\msw\config.gcc中设置
    举例:我的基本需求是,要能用XRC,能用OpenGL,能用ODBC(这个编译选项只在wxWidgets2.8版本以前有效,以后版本如果要用ODBC需要使用Debea库),能用中文,用dll。在编译之前,先写两个简单Batch脚本,分别为编译的debug版本和release版本的wxWidgets。这两个脚本以后编自己的wxWidgets程序依然有用
    第一个脚本名为dbvdll.bat,意为debug  version的动态库,也放置于D:\wxBuildPack。
    mingw32-make -f makefile.gcc USE_XRC=1 USE_OPENGL=1 USE_ODBC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1 clean

    mingw32-make -f makefile.gcc USE_XRC=1 USE_OPENGL=1 USE_ODBC=1 SHARED=1 MONOLITHIC=1 BUILD=debug UNICODE=1 VENDOR=cb

    第一行命令是清空以前的编译残留下来的.o目标文件和.o.d文件,它们的存在可能使编译结果不正确。
    第二行命令是正式编译,注意VENDOR=cb这一句,这意味着编出来的dll会有一个_cb的后缀。你可以把它改成自己的名字、自己的公司名什么的。用的cb是指Code::Blocks。
    接下来是rlvdll.bat,意为release  version的动态库,大同小异:
    mingw32-make -f makefile.gcc USE_XRC=1 USE_OPENGL=1 USE_ODBC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 clean
    mingw32-make -f makefile.gcc USE_XRC=1 USE_OPENGL=1 USE_ODBC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 VENDOR=cb
    为 了真的能用OpenGL和ODBC,还需要修改wxWidgets\include\wx\msw\setup.h。找到wxUSE_GLCANVAS和 wxUSE_ODBC,修改为#define wxUSE_GLCANVAS 1和#define wxUSE_ODBC 1

    wxWidgets 在Windows下用MinGW怎么编译,已经由wxWidgets/build/msw下的makefile.gcc指定清楚了。确认下C盘有超过1G 的硬盘空间,然后点开命令行提示符,进入wxWidgets/build/msw,依次输入evnset和dbvdll,离开电脑休息半个小时不到,就可 以编译出你的debug版本的wxWidgets了,再输入rlvdll,就可以把release版本的也编译出来。
    以编译2.8.7为例:
    cd C:\wxWidgets-2.8.7\build
    C:\wxWidgets-2.8.7\build> evnset
    C:\wxWidgets-2.8.7\build> dbvdll
    C:\wxWidgets-2.8.7\build> rlvlll
    编 译目标文件在wxWidgets/build/msw的以gcc_msw开头的子文件夹里。如果编译的是unicode版本,后缀会以u开头;如果编译的 是debug版本,接下来会有一个d;如果编译的是动态库,会以dll结尾。例如非unicode的release版的静态库,这个子文件夹就是 gcc_msw本身,没有任何后缀。而按我们刚刚的编译方法,会有gcc_mswuddll和gcc_mswudll两个子文件夹,里面是大量的.o目标 文件和.o.d文件。

    编 译的真正成果在wxWidgets/lib的子文件gcc_dll(动态库)和gcc_lib(静态库)里。gcc_lib里面会散落着一些.a库文件。 gcc_dll里面则散落着一些.a库文件和.dll动态链接库文件。.a和.dll的命名规则是在wxWidgets\build\msw \config.gcc和wxWidgets\build\msw\makefile.gcc中定义,按我们刚刚的编译方法,会有 wxmsw28ud_gcc_cb.dll、wxmsw28ud_gl_gcc_cb.dll、wxmsw28u_gcc_cb.dll、 wxmsw28u_gl_gcc_cb.dll四个。注意观察它们的后缀,意义是很明显的。需要说明一下,OpenGL支持,是不会被编译到 wxWidgets的那个单一库的dll里而会单独编译为一个dll。
    为了这些dll能被将来写的程序调用,我们将它们复制到D:\wxBuildPack中,因为D:\wxBuildPack已经被放到系统搜索路径。

    另:对sampes的编译时进入wxWidgets\samples,过程同上,是用dll还是lib链接wWidgets库只要在wxWidgets\samples\config.gcc中设定就可以了,然后运行
    mingw32-make -f makefile.gcc
    对应的exe文件就生成了
      
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在Code:Blocks使用MinGW编译wxWidgets库
用 Code:Blocks、MinGW 和 wxWidgets 搭建 C++ 开发环境
C/C++编译器的选用
C语言编译器MINGW的使用说明
比较MingW与Cygwin(搜集) - 姚中凯的日志 - 网易博客
SDL入门教程(一):3、MinGW 下的安装与设置
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服