学了好长时间的C++了,鉴于对标准和设计模型模式的推崇,一直没有找到合适的GUI语言,也一直苦于GUI开发时我还要借助于Delphi,但是现在不一样了,花了一个周末整个跨平台的C++开发环境,编译器采用的MinGW(如果是Linux,就省了编译器的问题了),C++库我选择了STL(MinGW自带)和Boost,GUI我使用的是wxWidget,3D图像引擎我使用的OpenSceneGraph(鉴于先前有OpenGL的研究基础,最近在学习OpenSceneGraph),IDE使用的Code::Blocks。

貌似是年前的时候,我有一段时间想使用CodeBlocks,但是由于没时间配置环境一直没有使用,现在刚换了个工作,不在使用Linux环境,改为了Windows,编程环境使用的VS,但是用了一段时间后发现VS是很强大,在程序编译速度上和性能优化上,都比GUN在windows上强劲一些,但是它强大的让人郁闷,没有足够的时间就搞不明白VS,先前用VS的时候直到工作才知道makefile(别笑我)。VS本身的智能提示也不是非常强大,但是有个VAX(俗称西红柿),非常强大,写代码时不需要记住太多东西,根据提示可迅速的编写代码,就这样运用了一段时间后发现,离开了VAX,不会写代码了,到处是拼写错误,于是我改了。。。

我现在是使用的CodeBlocks,将编译器配置为MinGW,这样可以基本上支持标准C++,然后我用MinGW编译了Boost,然后配置到开发环境中。由于C++0x迟迟不出,而Java,C#的库功能迅速发展,一个纯C++程序员的开发速度成了很大问题,但是还好,有一群热心的C++大佬,帮我们封装了好多常用的功能库,就是现在的Boost,据说Boost的开发人员有很多就是C++标准委员会成员,而且Boost的测试机制非常完善,因此Boost还是C++业界内非常权威的。

接下来配置的就是GUI,说起GUI那是既让人喜又让人愁。我曾经打算学习过好多GUI,但是后来都被各种各样的GUI扩展打垮了。最初想学MFC的,当时还买了本很厚的MFC教程(也许是让书吓倒了),学了不到一半,我就崩溃了,MFC毕竟是上世纪的产物了,真后悔学MFC之前就学了C++Primer和设计模型,如果不先学这个的话应该还能学MFC的,毕竟业界还是有很多人使用MFC,尽管他们一直使劲的骂MFC,但另一边还是在使劲的用MFC,这里没有贬低MFC的意思,是我个人原因,不太喜欢大量宏的MFC。接下来想学的是QT,但是听说QT的开源而不完全免费后我就郁闷了,既然你开源了还那么小气,而且在class内还引入了slot,我觉得是对标准C++进行了扩展,当然可以说是对C++的发展,但是吧,我这个人很倔,就感觉这东西跟标准委员那些老头们说的不一样,很别扭,于是我很快的放弃了QT,哎,我适应能力太差了。后来工作后开发环境是Linux,大家都知道在Linux上基本是用不着GUI的,而且我个人也承认Linux下Vim开发就是最爽的。当时有个同事喜欢用GUI,然后用的是wxWidget,看了下wxWidget之后觉得wxWidget还行,代码整洁,结构虽然跟MFC很接近但是它与MFC却又质的差别,首先wxWidget实现了跨平台,MFC只能用在windows下;其次,wxWidget基本上遵循了标准,代码比MFC清洁很多,也少了很多宏;再次,我对wxWidget不了解,没听多少人骂它,所以学起来也没那么抵触(被那些自己学会了疯狂骂MFC的人害的。。)。于是决定学wxWidgets,但是由于工作不需要,也没有多少时间,就没有深入的研究,一直搁置了起来。后来听说了delphi,下了个delphi看了下,做界面真的很帅,而且真跟传说的差不多,delphi具有脚本语言一样的开发速度和编译语言一样的执行速度,(其实开发速度我没感觉出来,执行速度和界面的确了不得),于是,有很长一段时间没事就整delphi,后来delphi弄的熟悉写后下载了个C++ Builder6.0,这个版本的C++跟Delphi7的界面是一样的,用起来也一样,只不过是编写语言不同,还好,研究了一段时间后发现C++ Buider也跟VC差不多,做了好多扩展,于是也放弃了Borland方向的研究(我麻烦事太多了)。直到现在,换了工作了,开发环境又从Linux换到了windows,呵呵,终于忍不住学GUI了,最后决定用CodeBlocks搭建环境后毅然选择了wxWidget,哎,不管怎样了,坚持下去总是好的,用多了也就接受现实了(感觉还有些不太满意,毕竟还有好多宏,不过比MFC少多了已经)。。。

最后就是OpenSceneGraph了,这是一个基于OpenGL的3D图像引擎,是跨平台的,跟Ogre啥的都差不多少,在工作过程中研究了下,发现封装的还是很精致的,如果对3D有兴趣的话,建议学完OpenGL之后可以学习下OSG。

就这样编译了两天,环境搭建好了,郁闷哦。。。

感觉能确立下个环境来还是非常好的,心情不错,来记录下,以后有什么代码或者研究还会回来写得。。。

原文出处:http://hi.baidu.com/girlkoo/blog/item/b1d19bcfd9da161792457e0e.html

转载于:https://www.cnblogs.com/silyvin/archive/2012/02/01/9106916.html

跨平台C++开发环境搭建——GNU+STL+Boost+wxWidget+OpenSceneGraph相关推荐

  1. boost标准库开发环境搭建boost标准库环境搭建以及简单案例介绍

    1.下载boost相关的库的安装包 网址:http://www.boost.org/ 其中1.55.0版本的下载地址是:http://sourceforge.net/projects/boost/fi ...

  2. Qt跨平台开发环境搭建

    Qt跨平台开发环境搭建 1.     背景介绍 Qt是一个跨平台的C++图形用户界面应用程序框架.它提供给应用程序开发者丰富的图形用户界面所需的所有功能.而且,Qt很容易扩展,并且允许真正地组件编程. ...

  3. 1、RN跨平台开发——环境搭建

    了解React Native React Native使你能够在Javascript和React的基础上获得完全一致的开发体验,构建世界一流的原生APP.React Native着力于提高多平台开发的 ...

  4. win10平台下VS2019+Qt5.14.2开发环境搭建

    Qt,是一个跨平台的C++应用程序开发框架,广泛用于开发GUI程序. 前情提要: 之前电脑中安装了Qt5.12.3版本,但是呢,只有MingW64位的编译版本,只能在Qt Creator中去编译,不能 ...

  5. Win7下Android开发环境搭建(8.19,8.24,9.30,10.21)

    [2013-10-21 20:06:55 - L9ThreeGong] Unable to resolve target 'android-10' [ 意思就是没有找到android_10,这里的10 ...

  6. 传智播客C/C++各种开发环境搭建视频工具文档免费教程

    传智播客作为中国IT培训的领军品牌,一直把握技术趋势,给大家带来最新的技术分享!传智播客C/C++主流开发环境免费分享视频文档中,就有写一个helloworld程序的示范.火速前来下载吧 所谓&quo ...

  7. 【游戏开发】基于VS2017的OpenGL开发环境搭建

    一.简介 最近,马三买了两本有关于"计算机图形学"的书籍,准备在工作之余鼓捣鼓捣图形学和OpenGL编程,提升自己的价值(奔着学完能涨一波工资去的).俗话说得好,"工欲善 ...

  8. linux以太坊开发环境搭建

    2019独角兽企业重金招聘Python工程师标准>>> 如果你希望马上开始学习以太坊DApp开发,可以访问汇智网提供的出色的在线互动教程: 以太坊DApp实战入门教程 以太坊去中心化 ...

  9. MonkeyRunner在Windows下的Eclipse开发环境搭建步骤(兼解决网上Jython配置出错的问题)...

    网上有一篇shangdong_chu网友写的文章介绍如何在Eclipse上配置MonkeyRunner,做了挺好的一个描述,但经过我的试验在我的环境上碰到了Jython解析器出错的问题,且该文章缺少P ...

最新文章

  1. python for语句_Python循环语句
  2. python建模仿真报告_Python|数学建模|排队论仿真
  3. (Oracle学习笔记) Oracle概述
  4. C#中dynamic的正确用法 以及 typeof(DynamicSample).GetMethod(Add);
  5. .NET Core多平台项目模板eShopOnContainers编译手记
  6. Android之推荐看的Android源码
  7. onclick 源码_精读:手写React框架 解析Hooks源码
  8. Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient报错,问题排查...
  9. sha256 oracle,node如何使用sha256算法?
  10. 计算机网络练习题-3
  11. Postman中文文档——安装与更新
  12. Android 系统(93)---android 怎么判断手机号是移动还是联通还是电信
  13. 生产环境突然编译报错:‘XXXX‘ is not defined no-undef
  14. 举例来学cond原语
  15. 对接高德接口心得,本篇不涉及具体接口
  16. ISFP——思想起决定作用
  17. Editplus各个版本(最新版本是5.3)注册码下载
  18. Java编写网络打字游戏
  19. 华为2012实验室无线通信领域的首席专家朱佩英博士
  20. Python-鼠标自动点击

热门文章

  1. 【Python3爬虫】最新的12306爬虫
  2. CVE-2018-20169漏洞学习
  3. ABAP术语-Object Name
  4. 利用shell脚本结合hive语句进行数据加载时的优化
  5. .Net Framework 各个版本新特性总结 (一)
  6. Img与background的区别
  7. 【转发】关于Java性能的9个谬论
  8. JAVA GUI关闭按钮不起作用(用SwingWorker解决)
  9. Silverlight4实现三维企业网站
  10. 安卓高手之路 图形系统(2)----------------基于Binder的架构思路)