Google

星期五, 四月 04, 2008

在Code::Blocks上使用wxWidgets-2.8.0 (二)——开发篇

终于进入正题了,我们先建立一个最简单的demo:
(1) 建立工程
用new projects建立一个wxWidgets application,在project option里使用Using UNICODE static wxWidgets libraries,当然如果你编译的是其他类型的库就选其他的。
这时建立的工程使用的却都是wxWidgets-2.6.0的配置,你需要自己修改wxWidgets的配置。
在左边栏的工程上点右键->Build Options进行配置.
(2) 配置Custom variables
WX_DIR配置为wxWidgets config时设的--prefix的目录,我的就是mingw啦。
WX_CFG配置为$(WX_DIR)\bin\wx-config。
(3) 配置directory
Compiler:
$(WX_DIR)\include\wx-2.8
$(WX_DIR)\lib\wx\include\msw-unicode-release-static-2.8

Linker:
$(WX_DIR)\lib

Resource compiler
$(WX_DIR)\include\wx-2.8
(4) 配置Linker
将原来的mswxu去掉,改成wx_mswu-2.8
再加上lib目录下的其他几个libwx开头的库,如wxpng-2.8。
注意这些库一定要排在所有库的最前面,否则link的时候仍然会出错。
(5) 编译运行
最重要的时刻到了, 点击Build and Run吧!怎么样,出错了吧,因为还要改一些小地方:)
这肯定是CB的bug了,你会看到new wxMenu时报错, 应该把""改成_(""), 这是因为我们现在建立的是Unicode程序,wxWidgets处理的字符串全都要加上"_()"这个宏.
现在可以运行了吧~
使用CB的wxSmith插件可以进行RAD开发, 大家可以看看这篇文章:
http://wiki.codeblocks.org/index.php?title=WxSmith_Tutorial_%26_Pointers
写的很详细,不过仍然是基于wx 2.6.0的,如果用在2.8的库上会出一些小错误,不过很好改,有空的话我再写吧~

(6) something about CB
CB的编辑器有个问题,就是对中文的支持不是很好,比如要把窗口的标题使用中文字符串就不行,不过这只是编辑器的问题,我们换个支持UTF-8的编辑器编辑这个源文件就可以了,比如emacs23:) 这样中文就能用在你的wxWidget里了吧~
最后强烈推荐Code::Blocks,它的开发团队非常活跃,每天都会有进展,这点非常重要,听说Dev-CPP的原创人之一都已经跳槽到CB开发了~ 希望更多的人能支持这个IDE,毕竟开源界太缺少这样的工具了,虽然写代码我一般用emacs,但是要开发GUI程序的话,还是有个RAD工具最好了~

http://aniluke.spaces.live.com/blog/cns!63F0E8C8F9B72D8A!412.entry

标签: , ,

星期四, 三月 20, 2008

wxWidgets 2.8.7编译

使用Code::Blocks带的mingw32编译,参数如下:
mingw32-make -f makefile.gcc BUILD=release UNICODE=1 USE_ODBC=1
共耗时18'。机器配置Intel Pentium 4 3.0G 1G Mem.以后打算换个AMD的4核试试。平台就不用Windows了。
其中,因为原来安装了UnxUtils几次提示zsh错误。有此方面问题的兄弟引以为戒。需要在path里禁用之。

标签: , , ,

星期二, 三月 18, 2008

Windows上配置Code::Blocks + wxWidgets

27号晚上我问一个做共享软件的朋友Lazaru(基于FreePascal的跨平台IDE,类似于Delphi)做桌面软件如何,他推荐用Code::Blocks,说Nightly Build已经很稳定,正式版很快就发布了,接着果然28号就发布了正式版。

本文内容来自Code::Blocks wiki上的WxWindowsQuickRef,本文内容并非按照原文完全逐字逐句的翻译。

Code::Blocks是一个跨平台的C++IDE,支持Windows、Linux、MacOSX。同时他还支持各种不同的编译器,如GNU/MinGW C/C++,VC++ 6.0/2003/2005/2008,Borland C++,Digital Mars等等各种不同的编译器。

经过14个组员长达2年对Code::Blocks的全部重写,终于发布了正式版8.02,这个版本更包括了对构建基于wxWidgets的跨平台GUI程序的支持,堪比Visual C++。

wxWidgets则是一个十分优秀的跨平台的GUI框架,用其编写的C++应用程序可以十分方便地迁移到不同的系统上去。

Code::Blocks + wxWidgets两个同是支持跨平台的IDE和框架,使得跨平台的编程非常方便。然而Code::Blocks虽然包含了对wxWidgets的支持, 但是却没有包含wxWidgets的构建环境,我们必须手动进行配置。另外,Code::Blocks有一个安装包包含了MinGW的编译器,如果使用别 的编译器,同样也需要自己进行相应的配置。

前提准备

编译器

你至少应该正确安装了免费的MinGW/GCC编译器或者是某种微软的编译器Express editions是免费的,但是你还需要安装Platform SDK)。如果是用MinGW/GCC,至少要准备gcc-core、gcc-g++、binutils、w32api以及mingw32-make包;同时,确保包含编译器可执行文件的目录(一般是C:\MinGW\bin)在Windows的PATH环境变量中。

如果选择MinGW/GCC编译器,可以在直接选择包含MinGW的Code::Blocks安装包,见下一节。

最新版的Code::Blocks

请下载最新的8.02发布版。尚未选择编译器可以选择包含MinGW的安装包

wxWidgets

你可以选择下载wxWidgets的源代码然后自己进行构建,或者是直接安装预编译的wxPack。

wxWidgets源代码

安装包较小,可以根据自己的需求进行自定义构建,但是需要花费长时间进行编译。如果不清楚编译选项,可能导致无法成功配置Code::Blocks。

目前推荐的wxWidgets的版本是2.8.7。点击此处下载wxWidgets 2.8.7源代码Windows安装包 (wxMSW-2.8.7-Setup.exe; 12.0 MB)。你也可以检查一下wxWidgets的下载页面看看有没有更新的稳定版下载。强烈建议你将代码安装到不带空格的路径中。必须保证盘中至少有300MB的剩余空间。

wxPack

虽然安装包达200MB,全部安装需要3G,但是包含了预编译的所有可能用到的库文件,而且包含VC和GCC的两种版本,可以不用去考虑构建选项了。

当前wxPack的稳定发布版是 v2.8.7.03,基于 wxWidgets 2.8.7。点击此处下载 wxPack v2.8.7.03 (wxPack_v2.8.7.03.exe, 236.9 MB)。你也可以查看wxPack下载页面看看有没有更新的稳定版下载。强烈建议将wxPack安装到没有空格的路径中。如果你选择只MSVC版本,应保证至少有700MB的剩余空间;如果只选择MinGW/GCC版本,则应保证至少有2.2GB的剩余空间。

提示

如果磁盘使用了NTFS格式,可以开启文件压缩功能,上述的目录在压缩后可以减少50%的空间占用。

编译wxWidgets

使用wxPack则可以跳过这一步。

打开命令行(在开始菜单中点击“运行”,输入cmd并回车)。如果使用的MSVC,你可以使用特定的用于设置环境变量的命令行。如果你使用的 MSVC版本还要求你单独下载Platform SDK,确保全部包含了标准编译工具和Platform SDK中要用到的环境变量。

转到wxWidgets的构建目录,其中是源码所在路径,通常是C:\wxWidgets-2.8.7

cd \build\msw

执行构建命令,MinGW/GCC推荐的命令是:

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

MSVC推荐的构建命令是:

nmake -f makefile.vc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1

这个过程需要花很久,快的机器大概30分钟可以完成,慢的可能就需要几个小时了。

如果使用的GCC的版本较新,构建过程中可能会出现大量的警告。这样会明显导致构建过程变慢;你可以将错误信息重定向到文件中,在上述命令后面添加2> err.log,也可以通过2>nul直接禁止警告信息。

其中关于BUILD、SHARED、MONOLITHIC以及UNICODE选项的解释,请仔细参考文章后面关于wxWidgets的构建参数的解 释,这些参数十分关键,他们直接定义了你所使用的基本的wxWidgets开发环境。你必须严格按照你的编译参数设置Code::Blocks的配置向 导。

在Code::Blocks中创建wxWidgets项目

在Code::Blocks的起始页面中,选择“Create a new project”,也可以在File菜单中,选择“New” -> “Project…”。

找到并选择“wxWidgets project”,并创建,接下来会出现一个向导帮助进行wxWidgets项目的配置:

  1. 第一个页面是简介,可以选择以后跳过。
  2. 选择你要使用的wxWidgets版本。如果你是按照本文的过程配置的,那么你应该选择“wxWidgets 2.8.x”。
  3. 设置你的项目的名字的位置。
  4. 输入作者的信息(非必要)
  5. 选择自动代码和文件生成的选项。
  6. 选择wxWidgets的位置。强烈建议在此使用全局变量:输入“$(#wx)”(不包含引号)。如果你还没定义这个全局变量,那么全局变量对话框会出现,在Base Path中,选择你的wxWidgets安装路径。其他路径可以不用填。
  7. 为你的项目选择debug/release配置。推荐至少选择debug配置。
  8. 选择你的wxWidgets构建选项。必须和你构建wxWidgets时所使用的选项一致!如果你按照本文之前的方式构建的,应该将 “wxWidgets Library Settings”下的全部三个选项选中。如果用的是wxPack,由于wxPack包含了各种不同的版本,所以你只需要选择你需要的选项。这个页面的另 一个设置和wxWidgets的构建选项没有关系,你可以按照喜好来选择。如果,出于某种原因,你想使用调试版本的wxWidgets构建,选择 “Configure Advanced options”然后在下一页选择“Use __WXDEBUG__ and Debug wxWidgets lib”。
  9. 如果需要,选择额外的库。一般应用的话应该无须选择其中任何一个。

构建并运行程序

接下来,就可以选择“Build and run”(F9)对程序进行构建并运行了。如果顺利,你的wxWidgets应用程序就会出现。如果出现了什么问题,你可以参考后面的常见问题。

wxWidgets编译选项简介

BUILD

BUILD控制wxWidgets构建调试版本(BUILD=debug)或者是发布版本(BUILD=release)。绝大多数情况下你只需要 wxWidgets的发布版本就可以了,因为你应该不想要去调试wxWidgets自身,同时你依然可以通过链接wxWidgets的发布版本来构建你自 己的程序的调试版本。

  • 调试构建wxWidgets会创建带有”d”后缀的库,例如”libwxmsw28d.a”、”wxmsw28d_gcc_custom.dll”。
  • 调试构建wxWidgets会在wxWidgets库的输出目录中创建”mswd” 或者 “mswud” 目录。
  • 发布构建wxWidgets创建的库没有”d”后缀,例如”libwxmsw28.a”、”wxmsw28_gcc_custom.dll”。
  • 发布构建wxWidgets会在wxWidgets库的输出目录中创建”msw” 或者 “mswu” 目录。

SHARED

SHARED控制wxWidgets是构建DLL(SHARED=1)还是静态库(SHARED=0)。利用构建的DLL,主程序构建时间较快,可执行文件更小。但是可执行文件加上wxWidgets DLL的总大小更大,但是不同的可执行文件可以使用同一个DLL。

  • wxWidgets的DLL构建会创建导入库(如 libwxmsw28.a)以及DLL文件(如wxmsw28_gcc_custom.dll)。你必须在发布你的程序的时候包含这个DLL。
  • wxWidgets的静态构建只会创建静态库(如 libwxmsw28.a),发布的时候也无须包含wxWidgets的DLL。

MONOLITHIC

MONOLITHIC控制是构建一个单一的库(MONOLITHIC=1)还是多个组件库(MONOLITHIC=0)。使用单一构建,项目的设置 和开发会更加简单,如果你同时使用DLL构建的话,你只需要分发一个DLL文件。如果使用非单一构建(multilib),会构建出多个不同的库同时你可 以避免将整个wxWidgets的基本代码链接到主程序,就可以去掉不需要的库。同时你也必须确保你选择了正确的组件库。

  • wxWidgets的单一构建仅会创建一个wxWidgets导入库(如libwxmsw28.a)以及一个DLL(如wxmsw28_gcc_custom.dll)。
  • wxWidgets的多库(multilib)构建会创建多个导入库(libwx28_base.a等)以及多个DLL文件。
  • 无论何种wxWidgets构建,都会创建额外的静态库(如libwxexpat.a、libwxjpeg.a等)。这些库对于wxWidgets的DLL构建一般是不需要的,但是当使用静态构建的时候,则是必须的。

UNICODE

UNICODE控制wxWidgets以及你的程序是否使用支持Unicode的宽字符串。大多数Windows 2000或更高系统上的应用程序都应该支持Unicode。早期的Windows版本不一定有Unicode支持。你应该总是使用wxWidgets的_("string")_T("string")宏来确保硬编码的字符串编译时是正确的类型。

  • wxWidgets的Unicode(UNICODE=1)构建将会创建带有”u”后缀的库,例如”libwxmsw28u.a”、”wxmsw28u_gcc_custom.dll”。
  • wxWidgets的Unicode构建会在wxWidgets库的输出目录中创建”mswu”或”mswud”目录。
  • wxWidgets的ANSI(UNICODE=0)构建创建的库没有”u”后缀,例如”libwxmsw28.a”、”wxmsw28_gcc_custom.dll”。
  • wxWidgets的ANSI构建会在wxWidgets库的输出目录中创建”msw”或”mswd”目录。

常见问题

出现类似于”wx/setup.h: No such file or directory”的错误

你在构建选项中缺少了很重要的编译器搜索路径。首先确认你是否在运行wxWidgets项目向导的时候正确选择了wxWidgets的构建配置。如果重新运行向导并配置依然无效,那么打开你的项目的构建选项并给编译起的搜索路径中添加”$(#wx.lib)\gcc_dll\mswu“(这里假设是一个单一的Unicode DLL构建)。

出现类似于”cannot find -lwxmsw28u”的错误

构建选项中的链接库错了。首先确认你是否在运行wxWidgets项目向导的时候正确选择了wxWidgets的构建配置。如果重新运行向导并配置依然无效,确定你构建了什么库,并相应在构建选项中调整库的名字。


摘自曹力的博客

http://shiningray.cn/windows-shang-pei-zhi-codeblocks-wxwidgets.html

标签: , ,

wxWidgets & Code::Blocks Studio

近来无事想写一个小程序,又不想花太多时间在UI上;就想起了一直关注的wxWidgets(以前叫wxWindows,据说是因为微软施压才改的名)。选用他的理由有三:

  1. 只会C。。。
  2. 不想因为界面设计而花太多时间
    • wxWidgets已经有了像wxGlade这样的东东,画个简单的界面什么的足够了
  3. 我的服务器已经都转换到了Linux;而桌面电脑随着时间的推移已经逐步的将常用的程序切换成了跨Windows/Linux的版本。所以学习一个跨平台的UI比较能够做到知识的保值
  4. wxWidgets中的wxString类提供了统一的一个字符串操作界面。一些常用的文本处理函数不用再创建了;这个我喜欢
  5. 开源、免费!

下一步就是选择IDE

主要焦点在MinGW Developer StudioCode::Blocks Studio这两个跨平台(都使用的是wxWidgets UI库)的免费软件之间:

  1. MinGW Developer Studio使用感觉还不错。有预编译的wxWidgets库;入门方便(编译wxWidgets库遇到的问题多多,后面慢慢讲)
  2. Code::Blocks Studio提供插件接口而且最重要的是更新快。这方面MinGW Developer Studio就差多了,活跃的开发团队是开源项目发展的关键!

当然差别还有很多。我是菜菜鸟看得到的就这些。。。

安装Code::Blocks Studio

Code::Blocks Studio现在发布的是RC2(还没有正式版)。但RC2问题多多(我发现的就有对Unicode编译的支持问题);不过有Nightly Builds可以解决。我的解决步骤是:

  1. 先下载并安装RC2整合MingW的版本,这样也就不用再去下载MingW(MingW下载包太多了,安装头痛)
  2. 下载Nightly Builds(现在登陆C::B这个论坛要注册,前几天都还可以匿名的)中的
    1. Unicode wxWidget动态支持库(新版的C::B已经使用Unicodede发布)
    2. C::B的Nightly Builds,我下的是2006/1/20号的rev1823
  3. 将两个包中文文件解压覆盖到C:\Program Files\CodeBlocks

安装wxWdigets

  1. 我在wxWidgets官方下载页面上下载的wxMSW v2.6.2 的ZIP版
  2. 解到D:\(安装完成后的路径为:D:\wxWidgets-2.6.2,之后的设置都用的是这个路径)

编译wxWdigets(支持ODBC)

  1. 首先编辑D:\wxWidgets-2.6.2\include\wx\msw\setup.h以便编译后的动/静态库文件支持ODBC(为了让编译出来的库支持ODBC,我至少编译了4次才找到原来还要在这儿修改。虽然wxWidgets的手册上写要修改setup.h不过没有具体说是那个目录下的。。。吐血)。修改内容如下:
    • 将文件中的#define wxUSE_ODBC 0修改为#define wxUSE_ODBC 1
  2. 然后我在D:\wxWidgets-2.6.2\build\msw下创建了一个envset.bat文件来设置编译需要的环境参数。
    1. 内容如下

      set PATH=%PATH%;C:\Program Files\CodeBlocks\bin;C:\Program Files\CodeBlocks\mingw32\bin;
      set LIBRARY_PATH=C:\Program Files\CodeBlocks\lib
      set C_INCLUDE_PATH=C:\Program Files\CodeBlocks\include
      set CPLUS_INCLUDE_PATH=C:\Program Files\CodeBlocks\include;D:\wxWidgets-2.6.2\include;D:\wxWidgets-2.6.2\contrib\include;

    2. 其中C:\Program Files\CodeBlocks是我的C::B的安装路径
  3. 同时修改D:\wxWidgets-2.6.2\build\msw\config.gcc
    • USE_ODBC = 0修改为USE_ODBC = 1
  4. 进入DOS命令行
  5. 切换工作路径至D:\wxWidgets-2.6.2\build\msw
  6. 运行envset.net
  7. 执行清理命令

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

    • 其中
      1. SHARED=1表示生成的动态链接库DLL,0就是静态链接库
      2. MONOLITHIC=1表示生成单一的库文件,0表示生成多个按模块分割的库文件
      3. BUILD=debug表示生成带Debug信息的版本方便调试,release是发布版
      4. UNICODE=1表示使用unicode编码
  8. 执行编译命令

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

  9. 看看电视,泡壶茶。编译的时间可不短;-)

整合C::B和wxWidgets

  1. 运行C::B。程序会提示你填写wxWidgets的安装目录
    • codeblock-wx-global-var-set.png
  2. 然后使用新建向导创建一个Using UNICODE wxWidgets DLL的wxWidgets Appliction就可以开始了
  3. codeblock-wx-create-project.png

有点晚了,关于C::B中的wxWidgets项目配置方面的改天再写。。。


http://flord.net/wxwidgets_and_codeblocks_part1

标签: , ,

用 CodeBlocks、MinGW 和 wxWidgets 搭建 C++ 开发环境

http://tb.blog.csdn.net/TrackBack.aspx?PostId=1481808

Code::Block、MinGW 和 wxWidgets 分别是三个著名的开源项目,分别是 IDE、编译器和界面库。由这三样搭建起来的全开源纯c++开发环境,功能不逊色于Visual C++,由于是开源的,这样的环境还是免费的,并且是跨平台的。^-^
下面说一下在 Windows 下的搭建过程:

一、编译器
MinGW 是指只用自由软件来生成纯粹的Win32可执行文件的编译环境,它是Minimalist GNU on Windows的略称,实际上 MinGW 并不是一个 C/C++ 编译器,而是一套 GNU 工具集合,是 Windows 的一个移植。MinGW 官方网站为 http://www.mingw.org
到 MinGW 的官方网站上下载如下文件
gcc-core
gcc-g++
binutils
mingw-runtime
mingw-utils
w32-api
mingw32-make
gdb
然后将这些文件解压到同一个目录下,本例为C:\MinGW。之后,设置环境变量,以便于操作,两种方法:
1、创建文件SetPath.bat,内容为:“set path=C:\MinGW\bin;%path%”,注意不含引号。创建完成后运行即可;
2、我的电脑-->属性-->高级-->环境变量-->系统变量,直接把 C:\MinGW\bin;添加到 Path,注意不要发动原有值。

如此这般编译环境就OK了。

二、IDE
Code:Blocks 是一个 IDE 平台,本身不含编译,它支持多种编译器,界面近似于 VC。官方网站:http://codeblocks.org
到其官方网站下载最新的 Nightly Build 版本,注意同时把mingwm10.7z(机器上没有安装 MinGW 编译器时用)和wxmsw26_gcc_cb.7z也下载来,Code::Block 要配合这两个压缩包中的 dll 工作。将这三个文件解压一同一个目录,本例为 C:\CodeBlock。
如此 IDE 平台就OK了。
对于喜欢中文界面的朋友,可以下载中文语言包 codeblocks.mo,并复制到 C:\CodeBlock 目录下即可。也可以到https://launchpad.net/codeblocks下载中文语言包,需要先注册才行,免费的。
第一次运行 codeblock.exe 时,会要求选择一个编译器作为默认器。

三、wxWidgets 界面库
wxwidgets 是一个c++编写的用来提供gui开发的框架。它包含一个可以支持现今几乎所有操作系统(Version 2 currently supports all desktop versions of MS Windows, Unix with GTK+, Unix with Motif, and MacOS. An OS/2 port is in progress.)的GUI库和其他一些很有用的工具,提供了类似MFC的功能。而且,特别要说一下,这个c++lib还的新版本还提供了对掌上电脑的 支持。当然,说到这里很多人会想到java队多系统的支持,其实这是不一样的,java的跨平台是建立在“中间代码”的基础上的,就是说需要在目标平台上 安装java解释器;但是wxwidgets是c++库,经过编译后,他提供的是native级的机器码,在gui编程方面,这可是意味着很大的不同!官 方网址:http://www.wxwidgets.org/
wxWidgets 与其它跨平台的gui库相比有如下优点:
1、是免费的,无论对于个人还是商业应用;
2、支持的操作系统相当全面;
3、大量使用宏,也就是说,编译出来的代码尽量使用目标操作系统的 native 的 gui 样式;
4、支持的编译器各类多;
5、应用广泛,目前有很多 gui 项目都是建立在 wxWidgets 之上的。

到其官方网站下载最新版本的 wxWidgets,目前最新版本为2.8.0,解压到C:\wxWidgets 2.8.0目录下。打开命令行界面[开始|运行,cmd],进入C:\wxWidgets 2.8.0\build\msw 目录,分别输入如下命令行:
清理: mingw32-make -f makefile.gcc clean
Release:mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=1 UNICODE=1 BUILD=release
Debug: mingw32-make -f makefile.gcc MONOLITHIC=0 SHARED=1 UNICODE=1 BUILD=debug
分别 build release 和 debug 版本的库。编译时间比较长的哟^_^
详细参数说明看文件 c:\wxWidgets-2.8.0\build\msw\config.gcc
详细安装说明看文件 c:\wxWidgets-2.8.0\docs\msw\install.txt
如果不想自己编译,可以到http://wxpack.sourceforge.net/Main/HomePage下载已经编译好的库(wxPack)的最新版本,根据需要安装。

(--最后,在 CodeBlocks论坛 http://forums.codeblocks.org/index.php?topic=4768.0

括号内的内容已过时,现在的Codeblocks Nightly build版本中已经饮食最新的 wxWidgets Project Wizard了。

现在,可以创建一个 wxWidgets 项目应用程序,看看我们的劳动成果了。。。

取消选中 “wxWidgets 被生成为单一库(monolithic)”,如图(没办法贴图),其它默认,编译,运行,OK,我们的劳动结晶出现了,是不是有点激动? 有一位仁兄发的一个贴子(Modified & Improved wxWidgets Project Wizard),是一个 wxWidgets 项目向导,比 CodeBlocks 自带的向导好用。下载最新的文件,解压到 c:\CodeBlocks\share\CodeBlocks\templates\wizard\目录下,覆盖原来的 wxwidgets 文件夹。--)

http://www.yylive.net/thread-4888-1-5.html


标签: , ,

windows下,wxWidgets环境搭建,用了mingw编译器和Code::Blocks

【参考】 “在winxp下用mingw编译安装wxwidgets”

1. 确定安装了mingw,并确定在windows的环境变量的path中包含了D:\mingw\bin(这是个例子).

2. 下载wxWidgets, 下载的文件名为" wxWidgets-2.8.6 ", 并解压缩到至少有1300MB剩余空间的分区的任何地方。
3. 定位到目录wxWidgets-2.8.6\build\msw,在控制台(cmd.exe)中输入下面语句中一个,进行的debug版本和release版本的编译:

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

只所以,UNICODE=1, 因为我们需要中午环境。之所以,SHARED=1,因为我们要带dll的版本,这样的lib中的文件总大小会小的多。
每次大约等待1个小时,wxWidgets 的一个版本就完成了。

4. 在合适的位置,比如你经常用于放sdk的文件中,将编译好的wxWidgets-2.8.6\include和wxWidgets-2.8.6\lib拷 贝到一个新建的或专门放wxWidgets sdk 的文件夹中,比如wxWidgets\include和wxWidgets\lib。 我目前是这么搞的,这样避免保留刚编译过的上G大小的wxWidgets-2.8.6,只保留有用的,但我还不确定其他的是否需要。也许如果需要,需要再 拷过来。

目前为止, wxWidgets 基本准备完毕了。

5. Code::Blocks 下wxWidgets 的环境配置。
a. 可以新建一个Global variable, 指向上述用于存放wxWidgets sdk 的wxWidgets文件夹.记得,该文件夹下必须要有include和lib文件夹.
或者直接Code::Blocks中新家project,选择wxWidgets project, 在设置Global variable时,输入一个新变量,如wx_gcc,即输入$(#wx_gcc),Code::Block会发现该变量没有定义,弹出Global variables settings 对话框,让你设置,在base中填入用于存放wxWidgets sdk 的wxWidgets文件夹的绝对路径.

b. 在wxwidgets library settings中,选定" use wxwidgets dll "(因为SHARED=1 ),取消选定的 " wxwidgets is built as a monolithic library ",选定 " enable unicode "(因为UNICODE=1 ).

再下一步,基本完成了.

在后面还会提示一些额外的功能部件, 这可能需要编译contrib吧,应该和刚才的编译类似.
http://worldant.blog.sohu.com/71177700.html

标签: , ,

星期五, 二月 29, 2008

沉积2+年,CodeBlocks升级!

Code::Blocks 8.02 has been released!
Thursday, 28 February 2008 18:34
Our long awaited release is finally here! Representing the hard work of 14+ developers for more 2+ years since our last official release (and many changes in the roadmap in between), it is finally made available to the general public.
For your convenience, we provide binaries for all platforms Code::Blocks supports:
Windows 2000 / XP / Vista
Linux (Ubuntu & Debian, 32 & 64 bits)
MacOSX 10.4+
Binaries for other Linux distros will be made available in the following days. So, without further ado, head over to the downloads section and get it while it's hot!
The Code::Blocks Team

http://www.codeblocks.org/

标签: , , ,

星期三, 九月 19, 2007

搭建跨平台编程环境Code::Blocks+wxWidgets

Windows下
  1. 到Code::Blocks官方网站http://www.codeblocks.org下载Code::Blocks+MingGW安装包,下载后用默认设置安装。

  2. 设 置环境变量,给Path环境变量加上C:\Program Files\CodeBlocks\bin。对于Windows XP,具体方法是鼠标右击“我的电脑”,在弹出菜单中选择“属性”;在出现的对话框点选“高级”标签,然后点击下方的“环境变量”按钮,在“系统变量”中 选中“Path”并点击“编辑”按钮;在弹出对话框的“变量值”一栏的末尾加上“;C:\Program Files\CodeBlocks\bin”(引号不用加);“确定”所有对话框即可。建议重启一次计算机以使新环境变量彻底生效。

  3. 到wxWidgets官方网站http://www.wxwidgets.org下载wxWidgets安装包,下载后用默认设置安装。

  4. 打开一个命令行控制台(开始菜单->程序/所有程序->附件->命令提示符),执行下列代码进行编译:

    1. C:
    2. cd \wxWidgets-2.6.2\build\msw\
    3. mingw32-make -f makefile.gcc BUILD=release clean
    4. mingw32-make -f makefile.gcc BUILD=release

    这时候漫长的编译过程,先去干点别的

  5. ……(干别的事情)

  6. 待编译完成,打开Code::Blocks,新建一个wxWidgets工程,编译看看能不能运行。

  7. 如果以Using wxWidgets DLL建立的工程,可能运行的时候会报告缺少wxmsw26_gcc_custom.dll文件。此时可选如下三种做法之一使得程序能找到该dll:

    1. 复制C:\wxWidgets-2.6.2\lib\gcc_dll\wxmsw26_gcc_custom.dll到C:\WINDOWS\system32\;

    2. 复制C:\wxWidgets-2.6.2\lib\gcc_dll\wxmsw26_gcc_custom.dll到工程所在的文件夹;

    3. 给Path环境变量加上C:\wxWidgets-2.6.2\lib\gcc_dll\,方法仿上文所述。

  8. 如 果以Using static wxWidgets library建立的工程,可能编译(build)的时候会报告ld找不到wxmsw库。此时在菜单中选择Project -> Build options,在弹出对话框中点选“Linker”标签;点击列表中的“wxmsw”,并点击“Edit”按钮,然后将其改为“wxbase26”并确 定;点击“Add”按钮,在弹出对话框输入“wxmsw26_core”并确定,然后用旁边的三角按钮将其提升到最顶端;再编译工程即可。如果程序还用到 其它的库,还要在此添加,并注意先后顺序。

FreeBSD下
  1. 从ports安装Code::Blocks

    以root身份执行:

    1. cd /usr/ports/devel/codeblocks/
    2. make install clean

    按理执行此命令后即会自动安装wxgtk2和wxgtk2-common两个port。如果没有安装请自行安装。

  2. 回复普通用户身份。打开Code::Blocks(可以在命令行下执行codeblocks打开,如果是csh的shell,刚安装完时需要先执行rehash),新建一个wxWidgets工程并尝试编译,如果能通过,则安装成功。

  3. 如果编译时报告`wxgtk2-2.6-config: No such file or directory,那么打开一个term,执行:

    1. wxgtk2-2.6-config --cflags

    执 行后不要关闭该term。点击Code::Blocks菜单Project->Build options,在弹出的对话框中的Compiler标签中点选Other options标签,用刚才term中输出的内容替换掉`wxgtk2-2.6-config --cflags`这一句。再在term中执行:

    1. wxgtk2-2.6-config --libs

    然后在Code::Blocks中刚才的Build options对话框里点选Linker标签,在Other linker options中用term中的输出替换掉`wxgtk2-2.6-config --libs`这一句。

  4. 重新编译工程就应该能通过了。

http://blog.csdn.net/lixinye0123/archive/2006/12/10/1437638.aspx

标签: , , ,

辽ICP备05003652号
流风洄雪听天籁,轻云蔽日看落花

Powered by Blogger