首页 安装CodeBlocks

安装CodeBlocks

举报
开通vip

安装CodeBlocks2.2. 安装IDE——Code::Blocks 我们需要一款好的IDE,希望它不仅有助于我们学习C++,也应该是我们今后编写C++应用程序时的上好工具。经过多方考察,我向读者推荐Code::Blocks,它除了具备IDE典型的集编辑、编译、调试在一身的功能之外,还具备以下特点。 ​ 开源 开源不仅仅意味着免费,它还意味着更好的学习途径。 ​ 跨平台 包括Windows、Linux、Mac OS等。 ​ 跨编译器 包括gcc/g++、Visual C++、Borland C++、Intel C++等超过20多...

安装CodeBlocks
2.2. 安装IDE——Code::Blocks 我们需要一款好的IDE,希望它不仅有助于我们学习C++,也应该是我们今后编写C++应用程序时的上好工具。经过多方考察,我向读者推荐Code::Blocks,它除了具备IDE典型的集编辑、编译、调试在一身的功能之外,还具备以下特点。 ​ 开源 开源不仅仅意味着免费,它还意味着更好的学习途径。 ​ 跨平台 包括Windows、Linux、Mac OS等。 ​ 跨编译器 包括gcc/g++、Visual C++、Borland C++、Intel C++等超过20多款编译器。同时它也支持多种语言的编译,包括D语言等(当然,Code::Blocks主要支持C++语言)。 ​ 插件式框架 Code::Blocks采用开放体系,有着良好的功能扩展能力。 ​ 采用C++写成 无须安装额外的,往往是庞大的运行环境。再者,一款C++的IDE采用C++写成,这是最自然不过的事了。 ​ 升级频繁与维护良好 差不多每个月都有升级包,有时甚至数天就有新的升级包可供下载。另外其官方论坛也相对活跃,除了提出BUG以外,来自世界各地热心维护者往往第一时间提供不同操作系统上的安装包。 ​ 内嵌可视化GUI 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 IDE的图形界面,采用wxWidgets,同时也支持使用wxWidgets进行可视化图形界面设计。 ​ 支持多国语言 通过中文语言包,支持汉化界面上的绝大部分内容。 下面我们讲解Code::Blocks发行版安装、升级、汉化、配置的过程。 2.2.1. 版本说明 Code::Blocks采用两种方法的版本命名,这一点大家需要了解,以免搞胡涂了。对于发行版,Code::Blocks采用“年份.月份”的方法。Code::Blocks至笔者写本文时,只在2008年2月发布一个发行版,所以其版本号为:8.02。 对于非发行版,Code::Blocks采用其源代码管理工具svn的代码版本号,一个整数值,该版本更新较快,写本 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 时,笔者所能使用到的最新版本为:svn5182。 2.2.2. 卸载原有mingw32 Code::Blocks支持多种编译器,本书例程采用Windows下的mingw32 g++编译器。 mingw32是g++环境在windows下的一个实现。为了避免版本与路径冲突,最好不要在一台机器上安装两个mingw32。如果您以前使用过其它采用mingw32的IDE,那您最好先卸载它们。 一个检测方法就是在Windows 开始菜单中,选择“运行”菜单项,在出现的对话框中,输入cmd然后回车,再在出现的控制台窗口内,输入以下命令: mingw32-make.exe (回车) 如果您看到类似这样的输出: “……不是内部命令,也不是可运行的程序……”,那就说明您的机器上可能没有安装过mingw32——这正是我们想要的。 2.2.3. 安装发行版 我们必须先安装第一个发行版(8.02)版,然后才进行升级。 为了方便读者,我们已经在本书配套光盘中提供了Code::Block 8.02 的windows安装程序。如果大家需要下载最新版本,可以参看本章尾部提供的相关网址。 安装过程无非是运行安装程序后,一直点“下一步”。不过,这里却有点例外,以下两点请大家一定照做: 步骤1: 请选择完整安装,以避免某些重要插件没有被安装上。 图 2 选择Full 安装类型 步骤2: 请选择直接安装在某个驱动器的根目录下,比如C:\CodeBlocks。不过,通过C:是安装操作系统的驱动器,所以我建议安装在另外的驱动器根目录下。之所以做此推荐,并非CodeBlocks自身有什么限制,而是因为mingw32中的某些命令,似乎对目录含有汉字,或空格的支持不太理想。 图 3 直接安装在根目录下 2.2.4. 安装升级包 配套光盘提供了svn5182版的升级包,您可以通过本章尾部提供的相关网址下载最新升级包文件。 升级过程仅仅是解压升级包的文件,解压到前一小节所选的安装目录下,如E:\CodeBlocks,覆盖原有全部文件或文件夹。 升级包是格式为.7zip;可以通过配套光盘附带提供的Free软件,7zip程序进行解压,或选择更常用的WinRAR工具。 解压成功后,双击桌面上的CodeBlocks快捷图标,应可以启动界面的左下角,看到“svn 5182”字样。或者在程序启动后,点击主菜单“Help”下的“About”,可以查看到更详细的版本信息。 2.2.5. 安装中文包 Code::Blocks支持国际化界面,包括中文。为了方便一些英文能力一般的读者,本书采用中文语言界面作为讲解的主体。要实现中文(简体)界面,需要额外安装中文包。 首先,请在 X:\CodeBlocks\share\CodeBlocks\ 建立名为locale的子文件夹。注意 locale 全为小写字母,X:\CodeBlocks应替换为Code::Blocks安装在您机器上的实际路径。将光盘提供的“d2school_codeblocks_chinese_locale.7z”文件,解压至该目录下。解压后,将出现新一级子目录:“X:\CodeBlocks\share\CodeBlocks\zh_CN\”,其内出现codeblocks.mo文件。 启动Code::Blocks,点击主菜单的“Settings”,选择“Enviornment”。出现的对话框中,左边选中“View”,右边打勾 “Internationalization (needs restart)”,并在后面的复合框中选中“Chinese (Simplified)”。完成后,点击OK按钮退出对话框。 图 4 设置国际化界面(简体中文) 退出Code::Blocks,再次运行,应可以看到中文界面。 Code::Blocks中某些功能采用“插件”形式提供,往往这些部功能的界面无法完整汉化。 Code::Blocks每次启动时,都会出现“今日提示”,我们可以将它也修改为采用中英双语显示。配套光盘提供了修改后的tips.txt文件,然后打开Code::Blocks安装目录下的“share\CodeBlocks”子目录,如有必要,请先备份原有同名文件。然后用光盘上的文件覆盖原有文件。 注意,每次采用Code::Blocks的升级包升级时,会将前述的tips.txt又恢复回原始的英文版。 下面是完成汉化后的Code::Blocks的运行截图: 图 5 “简体中文版” Code::Blocks 2.2.6. 配置OS环境变量 Code::Blocks自带安装了mingw32的文件,它们位于Code::Blocks安装目录下的“MinGW\”子目录下,为了方便系统调用mingw32的可执行文件,我们需要将相关路径加入到操作系统的环境变量中。 步骤1:请在Windows桌面上,用鼠标右键点击“我的电脑”,选择弹出菜单中的“属性”菜单项。将弹出标 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 为“系统属性”的对话框。 步骤2:“系统属性”是一个多页对话框,请切换到“高级”页面。然后点击该页底部的“环境变量”按钮,弹出标题为“环境变量”的对话框。 步骤3:“环境变量”对话框中,存在“XXX用户变量”和“系统变量”两个分组。请在“XXX用户变量”分组中,找到第一列变量名“PATH”的一行,双击它,出现“编辑用户变量”的对话框。(如果希望所有用户可以使用Code::Blocks,则在“系统变量”分组中进行相似操作。) 步骤4:在最后弹出的对话框中,全选(ctrl + A)、复制(ctrl + C)标题为“变量值”的编辑框中的全部内容,粘贴到记事本或其它你惯用的纯文本编辑器中。 步骤5:所复制过来的内容,是一堆的路径,每个路径中间以半角分号(;)区隔。请检查以下两样路径是否出现在复制过来的文本中: X:\CodeBlocks\MinGW\bin; X:\CodeBlocks\MinGW\libexec\gcc\mingw32\3.4.5; 如果没有,请将它们插入到最前面,注意两个路径之间同样以分号区隔,而不是换行。 步骤6:全选、复制前一步修改之后的内容,将它粘贴到“编辑用户变量”(或“编辑系统变量”)的对话框中的出处,替换掉原有内容。 步骤7:点确认按钮,退出各级对话框。 完成以上操作。请通过以下方法简单检查一下操作是否正确。 开始菜单,选中“运行”菜单项,弹出的“运行”对话框中,输入“cmd”(不含引号)。在控制台窗口内,输入以下内容: path (回车) 在屏幕输出中,必能能够找到前述的路径信息。然后再输入一行: mingw32-make.exe (回车) 没错,这件事情我们做过一次,不过相反的是,如果这次你看到的屏幕输出仍然是:“……不是内部命令,也不是可运行的程序……”,那就说明您操作有误,需要重做本小节的内容。 2.2.7. Code::Blocks配置——编译器与调试器 首先到 X:\CodeBlocks\MinGW\bin下,搜索,检查有没有存在以下文件: mingw32-gcc.exe —— 这是C的编译器。 mingw32-g++.exe —— 这是C++的编译器及动态库的连接器。 ar.exe —— 这是静态库的连接器。 gdb.exe —— 这里调试器。 windres.exe —— windows下资源文件编译器。 mingw32-make.exe —— 制作程序。 如果这些文件都存在,请点击Code::Blocks主菜单“设置”(汉化前的“Settings”),这次选中“编译器和调试器设置...”。弹出的对话框中,右边选中“全局编译器设置”,然后对照下图,检查左边配置是否正确无误: 图 6 配置编译器和调试器 首先在“选择的编译器”中,如图选中“GNU GCC Complier”。然后,“编译器的安装目录”,应填写Code::Blocks中,MinGW在您的机器上的真实路径。最后检查“程序文件”页面中的所有配置,是否与图示一致。 完成本小节,您可以跳到下一章“感受”,学习“Hello World”小节。如果要学习其它“感受”,则还必须完成学习本章的后续内容。 2.2.8. 相关网址 Code::Blocks官方网址:www.codeblocks.org Code::Blocks发行版下载页面:http://www.codeblocks.org/downloads Code::Blocks最新升级包下载论坛: http://forums.codeblocks.org/index.php/board,20.0.html 2.3. 安装 msys Code::Blocks支持多编译器,在Windows下支持包括Visual C++、Borland C++等编译器,但出于更方便的支持跨平台,本书将统一采用MinGW32的g++编译器(g++支持多个平台)。 msys同样出自“MinGW”官方网站,全称是“Minimal GNU(POSIX)system on Windows”。为什么要安装msys呢?或者说,安装msys有什么作用呢? 有一些C++功能库,它们在Linux系统下,能够方便的采用g++进行编译,在Windows下,则可以方便被Visual C++或Borland C++编译,但却“忘了”为Windows下的的g++(即 MinGW版 g++) 提供用于编译的文件——是这些库的作者轻视MinGW g++吗?当然不是——MinGW不仅提供Windows版本下的g++编译器,同时也提供了msys用来模拟一个最小化的Linux环境。前述的C++功能库,它们的提供的用于编译的文件,撰写得非常“纯正”,以至于只要一个像msys这样的“最小化Linux”模拟环境,就可以直接编译了。 要开始安装msys,您必须确保已经成功安装自带MinGW32的Code::Blocks,即您已经完成2.2节的任务。 请从 http://www.d2school.com 网站下载msys安装文件,或者在本书配套光盘上复制:MSYS-1.0.10.exe。双击该文件开始安装。 安装过程中一路点“Next”按钮即可,msys将默认被安装在C:\msys\1.0目录下。在安装的最后,会弹出一个控制台窗口,首先出现下述提问: “This is a post install process that will try to normalize between your MinGW install if any as well as your previous MSYS installs if any. I don't have any traps as aborts will not hurt anything. Do you wish to continue with the post install? [yn ]” 请输入y,并回车,接着出现: “Do you have MinGW installed? [yn ]” 这是在问:您以前有没有装过MinGW?当然要回答y,并回车。 接下来,要求我们以类似“c:/foo/bar.”的格式(请注意‘/’的方向)输入之前MinGW的安装路径,在此需要输入:“E:/CodeBlocks/MinGW”, (不含引号,并请注意‘/’方向及字母大小写),回车,控制台提示配置完成,再次回车关闭控制台。 回到桌面,点击安装向导的“Finish”按钮,完成msys安装。 桌面上新增“MSYS”快捷图标,双击以运行,将出现米黄色背景的控制台窗口,试着输入make并回车,如果出现以下提示,说明安装成功。 “make: *** No targets specified and no makefile found. Stop.” 至此,我们完成了msys的安装。本书需要直接用到msys的扩展库有:xerces-c。 2.4. 安装wxWidgets 多数应用软件,通常需要一个界面与使用者进行交互。典型的交互方式可以分成三种: ​ 纯文字界面 也称为“控制台”应用。此类应用通过以“一问一答”的形式在屏幕上打出提问的文字,然后等待用户输入后,程序得以继续运行。 这类交互形式称不上友好,但实现起来简单。在我们学习C++语法的一个很长的时期,我们所写的程序,多数采用此类形式。 ​ 图形用户界面 通过“对话框”、“菜单”、“按钮”等典型的图形元素所提供的用户界面。即“图形用户界面/Graphical user interface”,简称为GUI。该形式下,用户通过鼠标或键盘操作,选择所需的功能。 我们常用Office软件、QQ聊天软件、以及Windows操作系统本身,都是典型的GUI程序。 ​ 浏览器界面 浏览器界面是GUI的一种特定应用。它将程序分为后台服务和前台展示两部分。后台服务主要实现程序的业务逻辑,以及产生界面脚本(通常是HTML),真正的界面展现与交互工作完全交给第三方的浏览器(比如IE,或Firefox)去完成。 当我们上网浏览新闻时,就是在使用此类应用。 本书前面的一大部分内容,采用“纯文字界面”作为范例程序主要采用界面方式。此安排自然是为了避免读者一开始就陷入复杂的GUI界面设计的“泥潭”之中。然而,与大多数纯粹的C++语言教程止步于此不同,如果编写(跨平台)的“图形用户界面”,也是本书的主要教学内容。 C++的GUI程序库,同样充满很多选择。一些非开源产品多数仅限于某一平台。wxWidgets是同时符合“开源”、“成熟”、“跨平台”,并且支持各平台“原生界面”的GUI库中的佼佼者。这里的“原生界面”是指,在A系统下,其生成的界面元素,就和A系统的本地界面风格一致,这里的A,可以指代Windows XP、也可以指代Linux下某一图形界面。 wxWidgets的主要特点如下: ​ 开源 ​ 跨平台:Windows、Mac OS X、GTK+、X11、Motif、WinCE。 ​ 既支持原生界面,也支持统一风格界面。 ​ 不仅仅是图形界面库:集成提供了包括文件操作、目录操作、多线程、网络通讯、OpenGL(3D)等等功能库。 ​ 支持不同的库链接形式:静态链接,动态链接库,其中后者还可以支持编译成单一动态库,或多个小动态库的形式。 ​ 支持UNICODE:编译时,可以编译出UNICODE或非UNICODE两种版本,本书采用UNICODE,以方便编程上对汉字的操作。 ​ 发展成熟:有较长的发展历史(起源于1992年),业界有许多基于wxWidgets的成熟应用 ​ 学习资源丰富:网络上的可以找到较多的资源。 ​ 与Code::Blocks结合紧密:C::B本身正是采用wxWidgets实现跨平台的图形用户界面。另外C::B内置了使用wxWidgets的可视界面设计工具。 ​ 支持多种编译器:包括本书采用的开源gcc/g++编译器,也包括Visual C++等商业编译器。 本书配套光盘提供了wxWidgets 2.8.8 版本的安装程序,以及四种编译库。您可以通过查看光盘中对应的说明文件,实现快速安装。 如果您需要更新版本的wxWidgets,或者您只是想学习其编译过程,那么请继续阅读下述内容。 2.4.1. 准备 请通过本小节末尾的“相关网站”链接,上网下载wxWidgets的最新稳定版本。请注意选择为for windows版本。 下载得到的,应是一个可执行的安装程序。与Code::Blocks的安装类似,建议将其安装某个驱动器的根目录下,比如:E:\ wxWidgets-2.8.8 目录下(尾部数字以您所使用的wxWidgets版本为准)。 当然,由于本书将指导您安装多个C++扩展库,因此,如果您愿意建立一个新文件夹,用于作为各个C++扩展库的统一的父文件夹,的确是个好主意。 2.4.2. 编译 上一步安装wxWidgets,仅得到源代码文件及一些说明。我们还需要将其中的源代码编译成“库”文件。此类“库”有很多种形式,但其实都可以称为“预编译库”。意思是:它们已经编译好了,你直接拿去用吧。 我们先简单地了解一下“动态、静态”及“调试、发行”的区别。 “库”通常包含很多功能代码,但它们本身并不能直接运行,而是准备提供给应用程序使用, “动态链接”和“静态链接”代 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 程序如何找到及使用库功能的两种不同方法。 “静态链接”是指,直接将库文件和程序文件合成一个大文件,在合并过程中,完成对库文件各个功能的定位。这个事情发生程序编译的过程。 “动态链接”与此相反,库文件和程序文件各自独立存在,程序在运行时,才去库文件找相关的功能。 完全使用“静态链接”,我们可能会得到一个“胖胖”的程序,直接发给用户使用就可以了。使用“动态链接”,我们可能需要分发给你的用户多个文件(程序和各个库文件)。不小心弄丢了哪个文件,用户们就要抱怨你的软件“跑”不起来了。 “调试版”和“发行版”就和链接技术无关了。前者表示,二者的区别在于:前者含有调试信息,而后者没有。有调试信息有利于我们纠出程序中的错误,不过既然它的含有额外的信息,所以这样的库肯定“胖”了不少。如果觉得错误纠得差不多了,我们就可以改用相对“苗条”的发行版。 有关“库”的详细知识,我们留在第四章讲。今天我们将把wxWidgets编译译成四种形式: ​ 动态链接库 + 调试版 ​ 动态链接库 + 发行版 ​ 静态链接库 + 调试版 ​ 静态链接库 + 发行版 另外,wxWidgets的编译,还可以区分“UNICODE”及“非 UNICODE”两种式。在多数场合下,“UNICODE”可以对汉字及国际化有较方便的支持。因此以上四种组合,我们全部都加上相同“UNICODE”选项。当然, “非UNICODE”选项倒也不是一无是处,以后我们也会用到。 正式开始编译之前,必须确保已经在电脑上正确安装好mingw32环境,如果您不在确信,请使用2.1.6.1小节中提及的方法进行检测。 (以下四个版本都需要编译,而不是仅编译其一。) ​ 静态链接(调试版) 步骤1:打开“开始”菜单:“所有程序→附件→记事本”程序。用它打开 wxWidgets安装目录下,子目录“build\msw\”下面的“config.gcc”文件。 步骤2:找到以下内容,并确保将等号(:=)后面的值如下面加粗内容所示。另外其它未指部分的内容,请保持不变。 步骤3:请确认保存了本步的修改成果,再继续下一步。 # What type of library to build? [0,1] SHARED := 0 # Compile Unicode build of wxWidgets? [0,1] UNICODE := 1 # Type of compiled binaries [debug,release] BUILD := debug   步骤4:SHARED 为 0表示要编译的是静态库,而不是动态库(共享库); UNICODE为1,表示要编译成UNICODE版本,这一项在本次编译过程中始终为1。 BUILD为debug,表示要编译成含有调试信息的版本。 步骤5:打开“开始”菜单,选择“运行”,输入cmd,进入控制台窗口,然后在其内通过cd命令,切换到wxWidgets安装目录下的“build\msw”路径。比如您把wxWidgets 安装在“E:\wxWidgets-2.8.8”,则过程如下: E: (回车) cd wxWidgets-2.8.8 (回车) cd build\msw (回车) 步骤6:在第3步的控制台中,继续输入以下命令: mingw32-make.exe -f makefile.gcc (回车) 步骤7:这将开始一段长约30分钟的编译过程(视你的机器配置而定)。 ​ 静态链接(发行版) 编译过程和前一版本主要差别在于“config.gcc”文件的修改内容: # What type of library to build? [0,1] SHARED := 0 # Compile Unicode build of wxWidgets? [0,1] UNICODE := 1 # Type of compiled binaries [debug,release] BUILD := release 其它操作方法不变。 ​ 动态链接(调试版) 编译过程和前一版本主要差别在于“config.gcc”文件的修改内容: # What type of library to build? [0,1] SHARED := 1 # Compile Unicode build of wxWidgets? [0,1] UNICODE := 1 # Type of compiled binaries [debug,release] BUILD := debug 其它操作方法不变。 ​ 动态链接(发行版) 编译过程和前一版本主要差别在于“config.gcc”文件的修改内容: # What type of library to build? [0,1] SHARED := 1 # Compile Unicode build of wxWidgets? [0,1] UNICODE := 1 # Type of compiled binaries [debug,release] BUILD := release 其它操作方法不变。 2.4.3. 结束 这是一次漫长的编译过程,至此,我们完成了四个版本的wxWidgets库的编译。它是我们编写图形用户界面基础。 为了确保大家尽量顺利地完成编译,我们在“config.gcc”仅选择了最基本的编译选项。因此一些强大wxWidgets功能模块没有被编译成库,比如前面提到的非Unicode版,另外没有支持OpenGL、OBDC等功能。后面需要时,我们将会加上,并且令大家放心的是,这并不会带来又一次wxWidgets漫长完全编译。 〖小提示〗:程序员,起来走走…… 每次30分钟的编译过程,漫长的等待中,我猜到您不耐烦得站起来四处走动。走动其实健康有益。然而,在程序员的生涯中,我们更多面临的,可能是无数个3分钟,甚至是30秒的等待,这时,你是否记得提醒自己也要常常起来走动走动? Code::Blocks专门提供一个插件,用于提醒程序员注意休息,很有兴趣?请在休息之后继续我们的白话之旅。 编译过程中会产生大量的中间临时文件。请进入wxWidgets文件夹内的“build”子文件夹,搜索 “*.o”文件(确保选中“搜索子文件夹”选项):约有3千多个中间文件,全部删除,可以腾出1G多的空间。(Windows下多数编译器会生产扩展名为“.obj”的文件,但mingw32-g++产生的为“.o”文件。) 编译完成后,所有静态链接库位于wxWidgets安装目录下的“lib\gcc_lib”子目录。而动态链接库位于 “lib\gcc_dll”子目录。 仔细观察,会发现库文件名称中,有不少带有“ud”字母的文件,其中‘d’表示“debug”,即调试版本 ,不带‘d’的通常是“release”版本。 ‘u’表示“Unicode”,即支持Unicode编码。虽然我们这一次编译的全部采用“Unicode”选项,但还是存在一些文件并不带‘u’字母,那是因为这些库并不涉及到字符串的国际化处理,所以不需要考虑编码,比如与Jpeg图形功能有关的库。 ​ 静态库文件 libwxbase28u.a libwxbase28ud.a   libwxbase28ud_net.a   libwxbase28ud_xml.a libwxbase28u_net.a   libwxbase28u_xml.a   libwxexpat.a libwxexpatd.a     libwxjpeg.a    libwxjpegd.a libwxmsw28ud_adv.a   libwxmsw28ud_aui.a   libwxmsw28ud_core.a libwxmsw28ud_html.a   libwxmsw28ud_media.a   libwxmsw28ud_richtext.a libwxmsw28ud_xrc.a   libwxmsw28u_adv.a   libwxmsw28u_aui.a libwxmsw28u_core.a   libwxmsw28u_html.a   libwxmsw28u_media.a libwxmsw28u_richtext.a  libwxmsw28u_xrc.a   libwxpng.a libwxpngd.a    libwxregexu.a    libwxregexud.a libwxtiff.a    libwxtiffd.a    libwxzlib.a libwxzlibd.a ​ 动态库文件 wxbase28ud_gcc_custom.dll     wxbase28ud_net_gcc_custom.dll wxbase28ud_xml_gcc_custom.dll   wxbase28u_gcc_custom.dll wxbase28u_net_gcc_custom.dll    wxbase28u_xml_gcc_custom.dll wxmsw28ud_adv_gcc_custom.dll   wxmsw28ud_aui_gcc_custom.dll wxmsw28ud_core_gcc_custom.dll   wxmsw28ud_html_gcc_custom.dll wxmsw28ud_media_gcc_custom.dll    wxmsw28ud_richtext_gcc_custom.dll wxmsw28ud_xrc_gcc_custom.dll    wxmsw28u_adv_gcc_custom.dll wxmsw28u_aui_gcc_custom.dll     wxmsw28u_core_gcc_custom.dll wxmsw28u_html_gcc_custom.dll    wxmsw28u_media_gcc_custom.dll wxmsw28u_richtext_gcc_custom.dll  wxmsw28u_xrc_gcc_custom.dll 在gcc_dll目录下,除了扩展名为“.dll”的动态链接库以外,还存在大量的扩展为“.a”的文件,称为“导入库/Import library”,为了节省篇幅,上表未加列出。 “导入库”在编译时向应用程序提供信息,以辅助应用程序在运行时,定位具体某一功能在DLL文件中的入口。也就是说,今后编译程序时,将用到它们,但它们不必随同程序一起发行。 2.4.4. 相关网址 wxWidgets 官方网站:www.wxWidgets.org wxWidgets扩展代码:www.wxCode.com 2.5. 安装boost boost是一套开放源代码的,高度可移植的C++库。它相当于C++ 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 库(STL)的改进与扩展。并且,它其中的不少模块,已被下一代C++标准库采用。的确,boost库非常注重与C++标准库之间协同性,用户对STL的许多学习或使用的体验,在接触boost时,会很自然地“似曾相识”。 定位上,boost 库希望自己是一个可用于广泛的、不同业务方向的应用都能使用的基础库——这完全和STL的定义一致,但STL太过于基础了,我们来做一个比较吧。 首先,boost是一个基础库。boost不像wxWidgets那样具备一个明确的业务方向:GUI(虽然wxWidgets也提供了众多其它功能)。boost提供的功能偏向基础设施,所以它的应用目标更为广泛。 然后,boost和STL比较,STL作为C++必须实现的标准库,它几乎就是在提供成型的,可复用的“数据结构”与“算法”的大全。boost,特别是2008年发布的1.36版,提供了大量高级功能。当前包括:“正则表达式”、“线程”、“网络”、“数学”、“图(数学)”、“字符串”、“CRC校验”、“文件”、“日期、时间”、“图(图形处理)”等等模块。 如果在不同语言之间做横向比较,那么我们会发现,Java和C# (.NET)语言,它们的标准库所提供的功能无比广泛,而C++的标准库则相当可怜——甚至连“线程”都没有提供。boost库非常好地弥补了C++的这一点不足。 和STL类似,boost大量采用现代C++的泛型编程技术。因此多数模块,我们在使用时,仅仅需要引用其“头文件”;另外有10来个必须或者建议进行编译的模块——但本书下面的教程并没有对这10来个库进行完整编译——至少有两个原因:其一、我们并不立即就用到全部的boost库;其二、如果完整编译,需要使用的时间,可能长达5个小时。 2.5.1. 准备 本书光盘自带了安装boost所需要的两个文件,您也可以上boost官方网站(参看本小节尾部的相关网址),下载这两个文件: ​ boost 1.36.0 的源代码压缩文件,推荐下载 7zip 版本:boost_1_36_0.7z”。 ​ boost 编译工具,请选择windows下的可执行文件:boost-jam-3.1.16-1-ntx86.zip 下载后,得到源代码压缩文件,如果是7zip格式的“boost_1_36_0.7z”,约25M,解压后,将迅速变为175M,但这仅仅是源代码及文档的大小,在编译过程中,所需的空间更是惊人,请您保证解压缩后文件所在的磁盘驱动器,至少有5个G的可用空间。 boost 的编译工具,可以根据需要,将编译之后库文件,及不需要编译的头文件,统一复制到指定的目录,这样有利于我们得到一个“干净”的boost编译结果目录,本书将采用此方法。 下面,我们假设boost_1_36_0.7z被解压到“X:\tmp\boost_1_36_0”目录下,其中“X:”表示您选用的磁盘驱动器盘符, “tmp”是我们事先创建的文件夹,而 “boost_1_36_0”则在解压以后得到。我们把“X:\tmp\ boost_1_36_0”称为“boost安装源路径”。 接下来,假设我们希望它boost安装到“E:\ boost_1_36_0”目录下,请事先创建好这个文件夹,我们把这个路径,称为“boost安装目标路径”。 请解压“boost-jam-3.1.16-1-ntx86.zip”文件,得到bjam.exe,将它复制到boost安装源路径,即“X:\tmp\boost_1_36_0”之下。 2.5.2. 编译 步骤1:打开“开始”菜单,选择“运行”,输入cmd,进入控制台窗口,然后在其内通过cd命令,切换到boost安装源路径下。本例中为: “X:\tmp\boost_1_36_0”,则过程如下: X: (回车) cd tmp\boost_1_36_0 (回车) 步骤2:继续上步,请在控制台内输入: bjam --show-libraries (回车) 步骤3:正确情况下,将看到以下输出内容: The following libraries require building: - date_time - filesystem - function_types - graph - iostreams - math - mpi - program _options - python - regex - serialization - signals - system - test - thread - wave 步骤4:这里列出的是所有需要编译的boost模块,但我们将放弃对以下模块的编译: wave、mpi、 python、math、graph。这些模块的具体含义,大家如有需要,请自行查明。 步骤5:继续上步,在控制台内输入: bjam install --toolset=gcc --prefix="E:\boost_1_36_0" debug --without-wave --without-mpi --without-python --without-math --without-graph (回车) 步骤6:请特别注意其中加粗部分,更换为您自己的“boost安装目标路径”。其它部分作如下说明: 步骤7:-- 是两个连续的减号,=前后均不能夹带空格,除路径之外,参数都是小写字母。 步骤8:--toolset 表示采用gcc编译。这里指的mingw32下的gcc。因此,要正确编译boost,请您一定事先已完成2.1小节中,有关Code::Blocks下mingw32环境的安装。 步骤9:debug表示我们首先编译“调试版”。 步骤10:多个 --without 指定了所要放弃编译的模块。 步骤11:回车后,控制台内将出现大量看似奇奇怪怪地文字,最后能看到以下内容,就表示成功完成本步: ...failed updating 2 targets. ...skipped 31 targets... ...updated 341 targets... 步骤12:继续上步,在控制台内输入: bjam install --toolset=gcc --prefix="E:\boost_1_36_0" release --without-wave --without-mpi --without-python --without-math --without-graph (回车) 步骤13:改变的是“debug”更换为“release”。回车后开始发行版的boost库编译。 2.5.3. 补充 如果您的硬盘还有很大的空闲,比如还有50G空间没用上呢,那么我们也不反对——应该说是非常地支持——事实上是非常地艳羡——您完整地编译boost。 〖危险〗:编译boost:时间与空间双重负担 没错,我们马上就要提供“boost完全编译”的方法,但先要郑重提醒您:完整编译boost,不仅需要接近5个小时的等待,而且在空间上,需要高达12~15G的磁盘空间。 完整编译boost的命令行: bjam install --toolset=gcc --prefix="您的\boost\安装\目标路径" --build-type=complete 2.5.4. 结束 检查“boost安装目标路径”,应该可以看到两个子目录位于其内:“include”及“lib”,前者保存着所有采用纯头文件形式提供的boost代码文件;后者则保留着上一步的编译结果,这些库文件首先可以区分为以下三种形式: ​ “动态链接库”,扩展名以.dll结束 ​ “导入库”,扩展名以.lib结束,且文件名以版本号1_36结束 ​ “静态链接库”,以扩展名.lib结束。 然后三种形式再次区分为“发行版”和“调试版”,后者的文件名比前者多出一个“-d-”修饰。另外我们还可以看到所有库文件名中都带有“-mt-”字样,这是表示这些库都支持“多线程/Multithreads”。 请保存“boost_1_36_0.7z”及“boost-jam-3.1.16-1-ntx86.zip”两个文件,然后,建议您将 “boost安装源路径”下的doc文件夹——这是boost的说明文档——复制到“boost安装目标路径”下,然后,您可以放心地删除“boost安装源路径”。 2.5.5. 相关网址 官方网站:http://www.boost.org/ 2.14. Code::Blocks配置——全局路径变量 本章我们安装了许多扩展库,接下来,我们将要在程序中写一些调用这些库的代码,然后由编译器编译代码、最后由链接器将库与程序以某种形式“链接”在一起。编译器和链接器,都需要“知道”上哪儿找这些库。 "库"其实就是一些文件,它们被存放在某个文件夹里。以SDL为例,我们只要提供这样一个绝对路径:“E:\cpp_ex_libs\SDL\SDL-1.2.13\lib\SDL.dll”,那么链接器肯定不会向我们抱怨“找不到XXXX库”。 采用“绝对路径”来指定某个扩展库的位置,存在一些问题: ​ 团队开发时,难以合作。原因是不同的开发者可能将同一个库安装在不同的目录下。比如我把cpp_ex_libs安装在E盘,我写了一个例子项目放在网上供大家下载,但下载完以后,用Code::Blocks打开,由于项目配置内容中,全是“E:\cpp_ex_libs\……”,如果您的“cpp_ex_libs”位于F盘,那您就不得不一个个查找替换过去了!唉,这样事,我们之前就遇过。 ​ 就算个人开发,采用绝对路径也不太方便。以wxWidgets为例,一开始我用2.8.7的版本开发一个软件,后来wxWidgets官方升级了,我想试试新版,又不也直接删除掉旧版,所以就把新版安装在另一个目录下,这时要实现项目升级,如果当初写的“绝对路径” ,现在恐怕不得不去一一修改那些路径信息了。   Code::Blocks采用“全局变量”的概念来解决这一问题,即,用“${#wx}”这样一个特定的字符串,来表示wxWidgets的安装路径。在我的机器上,我它配置为代表“E:\cpp_ex_libs\wxWidgets\wxWidgets-2.8.9”这样一个位置,在您的机器,则可以配置成“F:\cppexlib\wx\wxWidgets-2.8.9”。我们之间的约定,就是同样以“wx”作为名字,用于代表wxWidgets扩展库在各自机器上实际安装位置。 类似同一个扩展库不同版本的问题如何解决呢?Code::Blocks提供了“全局变量集合”,允许提供多套全局变量。比如笔者在写本书的例子程序,所有扩展库都采用当前最新版本,但在为公司开发时,用的是相对旧版的扩展库,这种情况下,我就可以定义两套变量集,上班时和在家时在两个集合间切换即可(假设我上班和在家用的是同一台本本电脑)。 2.14.1. 新建全局变量集:d2school 为了教学上彼此方便,我们将在Code::Blocks中创建一个名为d2school的变量集,请按如下步骤操作。 步骤1:运行Code::Blocks;选择:主菜单“设置→全局变量”,出现对话框“全局变量编辑器”,点击第一行的“新建”按钮,如下图: 图 25 新建全局变量集合 步骤2:完成第一步,将再次弹出一个对话框,输入“d2school”(不含引号),确认退出。 图 26 指定新集合名字:d2school 2.14.2. 全局变量wx 我们拥有了一个新的全局变量集合,我们接下为该集合创建第一个全局变量:wx。 步骤1:在“全局变量编辑”对话框中,点击第二行的“新建”按钮,将弹出一个标题为“新变量”的对话框,这次输入“wx”(不含引号),确认退出。 图 27 新建全局变量wx 步骤2:然后,请在“全局变量编辑”对话框左侧的“base”栏内,填写wxWidgets扩展库在您机器上的安装路径,对于本书是: “E:\cpp_ex_libs\wxWidgets\wxWidgets-2.8.9”(不含引号,下同) 您可以通过编辑框右边的“...”按钮找到实际安装路径。 在“include”栏内,填写: “E:\cpp_ex_libs\wxWidgets\wxWidgets-2.8.9\include” 在“lib”栏内,填写: “E:\cpp_ex_libs\wxWidgets\wxWidgets-2.8.9\lib” 效果如图: 图 28 wx变量的base,include,lib填写内容 步骤3:为了确保填写无误,请分别点击上图中的三个“...”按钮,进行检查。 2.14.3. 其它全局变量 ​ boost 名称 boost base E:\cpp_ex_libs\boost\boost_1_36_0 include E:\cpp_ex_libs\boost\boost_1_36_0\include\boost-1_36 lib E:\cpp_ex_libs\boost\boost_1_36_0\lib ​ iconv 名称 iconv base E:\cpp_ex_libs\iconv include E:\cpp_ex_libs\iconv\include lib E:\cpp_ex_libs\iconv\lib ​ iconvpp 名称 iconvpp base E:\cpp_ex_libs\iconvpp include E:\cpp_ex_libs\iconvpp\include lib E:\cpp_ex_libs\iconvpp\lib ​ mysql 名称 mysql base E:\cpp_ex_libs\MySQL include E:\cpp_ex_libs\MySQL\include lib E:\cpp_ex_libs\MySQL\lib ​ mysqlpp 名称 mysqlpp base E:\cpp_ex_libs\MySQL++\3.0.6 include E:\cpp_ex_libs\MySQL++\3.0.6\include lib E:\cpp_ex_libs\MySQL++\3.0.6\lib ​ xerces 名称 xerces base E:\cpp_ex_libs\xerces-c\xerces-c-src_2_8_0 include E:\cpp_ex_libs\xerces-c\xerces-c-src_2_8_0\include lib E:\cpp_ex_libs\xerces-c\xerces-c-src_2_8_0\lib ​ deelx 名称 deelx base E:\cpp_ex_libs\deelx include E:\cpp_ex_libs\deelx\include lib (空) ​ sdl 名称 sdl base E:\cpp_ex_libs\SDL\SDL-1.2.13 include E:\cpp_ex_libs\SDL\SDL-1.2.13\include\SDL (注意,和其它include略有不同,此处以SDL子目录结束,而不是在include目录结束) lib E:\cpp_ex_libs\SDL\SDL-1.2.13\lib (之前,我们曾经将SDL.dll复制到该目录下)
本文档为【安装CodeBlocks】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_302240
暂无简介~
格式:doc
大小:396KB
软件:Word
页数:22
分类:互联网
上传时间:2011-09-20
浏览量:157