`
isiqi
  • 浏览: 16355474 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

瞎扯Boost、Code::Blocks和D

阅读更多
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta content="openoffice.org 2.4 (linux)" name="generator"> <style type="text/css"> <!-- @page { size: 21cm 29.7cm; margin: 2cm } p { margin-bottom: 0.21cm } h2 { margin-bottom: 0.21cm } h2.western { font-family: "bitstream vera sans", sans-serif; font-size: 14pt; font-style: italic } h2.cjk { font-family: "bitstream vera sans"; font-size: 14pt; font-style: italic } h2.ctl { font-family: "bitstream vera sans"; font-size: 14pt; font-style: italic } --> </style>

瞎扯Boost、Code::Blocks和D

本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,务必保留全文完整,未经许可,不得商用。

我这几年的开发工作已经以python为主,C++只是偶尔在自己的一些实验中才用了,所以可以说不用C++已经好多年。最近家里的台式机和笔记本已经全部转成ubuntu ,也就有了更方便的C++ 环境,再加上一直以来的C++ 情结,便又重拾了它。孔夫子曰过温故而知新,这一重回C++ 世界便有些话想来瞎扯一下。

Boost1.35 的发布是我重新回到 C++的动力之一。1.35 新增了12 个新的库,其中Asio无疑是最吸引眼球的。最近自己的工作也以 linux 平台下的游戏服务器开发为主,虽然整个服务器几乎是纯python 开发的,但毕竟与网络等接触面增大,关注asio 是必然的。Bimap和 CircularBuffer是新增的两种容器,感觉上它们的存在使得C++ 的数据结构空前地丰富了,甚至比python 还要多一些?Intrusive库提供了”侵入“式的容器,性能更好,内存占用更少,但相应地用户要承担更复杂的对象生存期管理和更为困难的线程安全分析。Interprocess和MPI库分别提供了共享内存和分布式并行编程的支持,与thread 库一起为多核时代的C++ 编程铺设了一条更为平坦的道路,它们加入boost 显然也是大势所趋。Function Types, Fusion,Math/Special Functions, Math/Statistical Distributions, 以及System因为自己在开发中普遍应用它们的可能性较小,所以没有能够挤出时间来了解它们。但1.35中不得不一提的就是GIL 库,它是由 adobe贡献的图像处理库,因为之前对图像处理方面做过一些实验,所以也看过官网的一些视频教程,深为其高水平的设计与实现所折服,如果我是专业做图像处理的程序员,我一定会好好关注、学习这个库的。

从1.35来看,boost从一开始的作为 stl的补充(注重实用),到充分地挖掘 C++的特性(注重理论),现在又回归到了以增加某一领域专用的库为主的基调,比如asio、gil和对并行开发的支持都可以看出boost 1.35 新增特性非常实用。

如果使用 C++ 进行开发,没有一个好用的IDE 是比较难受的。我以前习惯使用 VC6,后来升级为VC2005,中间的 VC2003一直用不惯,可惜的 python2.5 等许多我需要用到的开源软件都是用 VC2003编译的,我又懒得在 win32平台下把它们都重新编译一遍,便就不得不常常把编程的平台转移到脚本和linux 上来,尽量不在win32 下碰 C++。老早就听说过Code::Blocks 的大名了,也下载来安装过,但都没有能够在win32 下通过 beta版本 build 成功。直到ubuntu 8.04 发布之后,把家里用的笔记本换成了ubuntu,便又记起这个号称跨平台的IDE。当时正在公司上班,跑上官网一看,竟然出了正式版了,版本号与ubuntu一样采用了年月的方式,当前版本是 8.02。下载了一个带了MinGW 的版本,不过是19M,比起动不动几G的VS系列实在算是骨瘦如柴。装在公司用的本本上,打开一看,端的是漂亮,尝试新建几个样板项目编辑、编译了一下,感觉非常舒适,便决意不装VS 系列了。


一张从官网“借”来的 CB截图

回到家里再去下载for ubuntu的版本就九经周折,下载速度非常慢。几次放弃,几次重来之后,终于下载了源码版本。解压、配置、编译、安装,除了中间需要先装上wxWidgets 2.8之外,一切还算顺利。安装完后在[应用程序]菜单下的[编程]子菜单中可以找到Code::Blocks的启动项,谁知认真点击之后硬盘灯亮了一阵,啥也没显示出来。后来在命令行敲入codeblocks 才看到原来出了这样的错误:

codeblocks:error while loading shared libraries: libcodeblocks.so.0: cannot openshared object file: No such file or directory

请教 Google大神之后得到的解决方案是这样的:

sudovi /etc/ld.so.conf #编译该文件
/usr/local/lib#将该行加入到该文件的末尾,然后保存
sudoldconfig #重新配置

这样就能够解决问题了。

CB的确是非常漂亮,上手度也很好,配置界面极为舒适,值得推荐。我又因为在CB 中看到 D语言的支持,不由得就又跃跃欲试。在去年的时候就关注过一段时间的D语言,对其好称有编译型语言的执行速度和脚本语言的开发效率极感兴趣。尤其是它的契约式编程,我觉得对于团队协作是一个很有用的特性,另外原生的单元测试支持也为它加分不少,属性、元编程等现代面向对象特性和对C库的二进制兼容都让我不得不关注他。

Code::blocks对D的支持可以说是非常完备的,难怪D 语言已经是流行度极高的语言,随着D 2.0进入预发布阶段,它的实用性越来越高了,我得找时间学学新东西了!

与开源接触越多,越觉得这个自由的世界尤为精彩,现在是时候把WinXP 换成 ubuntu,把VS 换成 CB,再学一门新的语言了。

<!-- SiteSearch Google -->
Google 输入您的搜索字词 提交搜索表单
Web blog.csdn.net
<!-- SiteSearch Google -->
分享到:
评论

相关推荐

    Code::Blocks for C_Cpp Novice2

    本资源"Code::Blocks for C_Cpp Novice2"是针对C/C++初学者的一份中文文档,旨在帮助新手快速上手和理解如何使用Code::Blocks进行编程。 首先,Code::Blocks提供了丰富的项目模板,包括控制台应用、静态库、动态库...

    CODE::BLOCKS GLUT 完整开发包

    这个"CODE::BLOCKS GLUT 完整开发包"对于使用CODE::BLOCKS的开发者来说是一个便捷的资源,它简化了在IDE中集成GLUT库的过程,使得开发者能更专注于OpenGL应用的逻辑和设计,而无需花费过多时间在环境配置上。...

    Code::Blocks for C_Cpp Novice1

    Code::Blocks是一款开源的、跨平台的集成开发环境(IDE),专为C和C++编程设计。这款IDE以其灵活性和易用性而受到初学者和专业开发者们的欢迎。本资源包含两份PDF文档,"CB for C_Cpp Novice1.pdf"和"CB for C_Cpp ...

    Code::Blocks

    Code::Blocks是一款强大的开源集成开发环境(IDE),它支持多种编程语言,包括Frotran、C++和Python等。在本文中,我们将深入探讨Code::Blocks的特性、用途以及如何利用它来编辑、修改和应用Frotran语言。 首先,让...

    Code::Blocks for C_Cpp Novice4

    Code::Blocks是一款开源、免费的集成开发环境(IDE),专为C++编程设计,适合初学者和专业人士。这款IDE以其轻量级、可定制和跨平台的特性深受开发者喜爱。"Code::Blocks for C/C++ Novice4"的标题表明这是一份针对C...

    集成开发C语言编译器:Code::Blocks

    Code::Blocks是一个强大的...支持多种文件类型:Code::Blocks不仅支持自身的工程文件、C/C++文件,还支持多种其他文件类型,如AngelScript、批处理、CSS文件、D语言文件等。 灵活的配置:Code::Blocks具有灵活而强大

    Code::Blocks 10.05中文资源包

    看到不少的Code::Blocks 10.05中文资源包,基本都是用得8.02版的,汉化不全,针对Code::Blocks 10.05进行了汉化。

    Code::Blocks SourceCode

    1. **跨平台支持**:Code::Blocks支持Windows、Linux和macOS等操作系统,这得益于它使用了wxWidgets库来实现跨平台的用户界面。通过源代码,我们可以研究如何在不同平台上实现相同功能的兼容性问题。 2. **项目管理...

    Code::Blocks8.02

    Code::Blocks 是一个开放源码的全功能的跨平台C/C++集成开发环境。 Code::Blocks是开放源码软件。Code::Blocks由纯粹的C++语言开发完成,它使用了蓍名的图形界面库wxWidgets(2.6.2 unicode)版。对于追求完美的C++...

    code::blocks汉化包

    在Code::Blocks的情况下,"code::blocks汉化包"就是这样一个工具,它可以将Code::Blocks的英文界面翻译成中文,使用户更容易理解和操作。 汉化过程一般包括以下步骤: 1. **下载汉化包**:首先,你需要找到一个...

    Code::Blocks官方使用手册(CHM)

    Code::Blocks官方使用手册,CHM格式。

    32位code::blocks 20.03下载

    因为这个是不自带MinGW文件夹的,所以需要自己另外下载MinGW文件夹。下载点击安装,配合我博客的另一个MinGW文件夹即可开始使用code::blocks

    code-blocks汉化包

    6. 重启Code::Blocks:关闭并重新启动Code::Blocks,你应该会发现软件界面已经变为中文。 安装汉化包后,用户可以更加方便地学习和使用Code::Blocks进行C语言开发。例如,对于初学者,可以更快地理解菜单项的功能,...

    Code::Blocks17版

    Code::Blocks是一款开源的、跨平台的集成开发环境(IDE),专为C和C++编程设计。它在编程界有着良好的口碑,特别是在教学和初学者中广泛应用,因为它的易用性和丰富的功能。相比老一代的VC++(Visual C++)和DEV C++...

    code::blocks IDE

    虽然标题提及的是较老的版本13.12和10.05,但即使在这些早期版本中,Code::Blocks就已经展现出了其强大的功能和稳定性。 **主要特点:** 1. **跨平台**:Code::Blocks可在Windows、Linux和macOS等不同操作系统上...

    Code::Blocks 8.02 GCC 4.40 汉化包

     Code::Blocks具有灵活而强大的配置功能,除支持自身的工程文件、C/C++文件外,还支持AngelScript、批处理、CSS文件、D语言文件、Diff/Patch文件、Fortan77文件、GameMonkey脚本文件、 Hitachi汇编文件、Lua文件、...

    Code::Blocks使用手册

    Code::Blocks是一款开源且免费的集成开发环境(IDE),专为C++编程设计,它在Windows平台上表现出色,同时也支持跨平台开发,可以在Linux和Mac OS等操作系统上运行。本手册将详细介绍Code::Blocks的安装、配置、项目...

    Code::Blocks 8.02语言包

    在描述中提到,Code::Blocks支持国际化界面,意味着它内置了多语言功能,可以适应不同国家和地区用户的语言需求。然而,值得注意的是,由于部分功能是通过插件形式提供的,这些插件的界面可能无法完全汉化。这意味着...

Global site tag (gtag.js) - Google Analytics