目录:

    1、开源环境的选择:IDE+编译器

    2、构建步骤


1、开源环境的选择:IDE+编译器

  在这里选择都是发布在GPL license 下的工具:codeblocks 和 gnu gcc

  codeblocks 最新版下载:http://www.codeblocks.org/downloads/binaries

  gcc release 说明:这里是gcc源码发行说明  -> 发行的是gcc源码(因为每次有更改时要同时为多个平台提供预编译好的文件很难)->选择不同的平台自己去下载 -> 这里我选择Windows 的MinGW ,进入对应网站介绍  ->简单了解后,点击downLoad 进入 SourceForge 下载页面 -> 在页面中,点击Download mingw-get-setup.exe (86.5 kB) 下载 MinGW安装管理器 。    (这些过程可能需要F GFW)

  这个管理器也是GPL开源的,功能是可以让你选择想要安装的 gnu gcc 编译器版本,如C编译器、C++编译器、Ada编译器等,然后在线下载并得到最终的编译器。

2、构建步骤

  在官网下载 codeblock后,新建一个简单的console项目,这是简单的Hello World 也是执行不了的。因为默认下应该是没有编译器的,需要自己下载并在codeblocks里指定,这就是要下载上面提到的 MinGW的原因了。

  在CodeBlock 指定编译器的方法: Setting -> Compiler... -> Select Compiler -> Gnu Gcc Compiler -> ToolChain executables -> 选择安装MinGW的目录(如下图)

在这之前,需要先用上面的 mingw-get-setup.exe 安装后的的 MinGW安装管理器 选择 想要安装的 gnu gcc 编译器版本来安装,因为这个只是一个管理器,本身没有编译器的任何东西,他只是提供方便的下载选择。

经过观察编译器的说明和我自己的需要,我选择了C和C++编译器,分别是mingw32-base 和 mingw32-gcc-g++:(如下图)

勾选之后,点击 Installation->apply changes 便会自动安装,安装完之后再在上面提到的CodeBlock选择安装目录那里指定你的安装MinGW的目录。

点击OK保存后,编译一个简单的C++ console Hello World 程序,编译器报错:

ld.exe     not found -lpthread

这是缺少库 pthread 的意思,这个好像跟 posix 标准有关,这个gcc 运行使用的接口可能是用这个标准写的(由下图 thread mode:posix 猜测),所以需要用到相应的库。

所幸 MinGW安装管理器 也 提供了相关库的下载,如下:

All Packages -> MinGW -> MinGW Libraries -> 此时在右边的列表里,早到如图三个mingw32-pthreads-w32 (应该在最下面,class 为doc的那个是文档,不要的话应该也可以,其他dev 和 lic 我不知具体是什么,这两个最好要选上),然后同样在勾选之后,点击 Installation->apply changes 安装完应该就可以了。至少我是可以编译C\C++ Console程序了。

C++ —— 构建开源的开发环境的更多相关文章

  1. [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)

    [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux) 1.关于跨平台 上篇中介绍了MVC的发展历程,说到ASP.NET ...

  2. Spark:利用Eclipse构建Spark集成开发环境

    前一篇文章“Apache Spark学习:将Spark部署到Hadoop 2.2.0上”介绍了如何使用Maven编译生成可直接运行在Hadoop 2.2.0上的Spark jar包,而本文则在此基础上 ...

  3. 为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。

    为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. - 在水一方 - 博客频道 - CSDN.NET 为 Python Server Pages 和 Oracl ...

  4. 使用Eclipse+Maven+Jetty构建Java Web开发环境(几个教程综合集成2014发行)

    工作需要使用Jetty由于web集装箱,得知Eclipse+Maven+Jetty该组合是非常好的,因此,要在网上找了很多教程,但不写或多或少特定的或过时的内容而导致最终的配置失败,易于配置为未来的同 ...

  5. 强推一款开源集成开发环境——Geany

    本人是一个标标准准的程序员,集成开发环境在电脑上大概看一下有:Code Blocks(C/C++),VS(C#,C/C++),eclipse(Java),Hbuild和web storm(前端),py ...

  6. vue第三单元(webpack的应用-能根据具体的需求构建对应的开发环境)

    第三单元(webpack的应用-能根据具体的需求构建对应的开发环境) #课程目标 理解什么是单页面应用. 掌握单页面和多页面的差异. 了解单页面的实现原理. 掌握模块化的方式实现webpack配置,区 ...

  7. Python开发篇——构建虚拟Python开发环境(Conda+Poetry)

    前言 之前虽略有提及Python,但是没有实际地写点料.惭愧,惭愧,所以这次先起个头,讲讲如何构建虚拟Python开发环境.相信之前看过我博客的人可能会想:博主不会又要聊聊Docker吧?放心,不会. ...

  8. Visual Studio Code 构建C/C++开发环境

    转自: https://blog.csdn.net/lidong_12664196/article/details/68928136#visual-sutdio-code%E4%BB%A5%E5%8F ...

  9. Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160 众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑 ...

随机推荐

  1. 网络编程(学习整理)---1--(Tcp)实现简单的控制台聊天室

    1.简单的聊天室(控制台): 功能实现: 客户端和服务端的信息交流: 2.牵扯到的知识点: 这个我大概说一下,详细后面见代码! 1) 网络通讯的三要素 1. IP 2. 端口号. 3. 协议   2) ...

  2. opencv有关错误及解决办法

    1.载入图片时内存溢出情况,如图: 分析及解决办法:因为载入的图片太大,导致内存溢出.所以更换小一点的图片就行了. 2.

  3. sicily-2499 平方数

    题目分析: 一个数可以表示成四种状态,所以可以用一个状态数组来存放该数由几个数的平方和表示.1.表示该数本身是完全平方.2.表示该数是由两个平方和3.表示三个.4.表示4个.一次遍历找出本身是完全平方 ...

  4. 狗狗40题~(Volume B)

    H - Sorting Slides 应该是个二分匹配的模板题的,但我还不会写 = = 其实数据规模很小,就用贪心的方法就水过了(没加vis判冲突wa了几发,从此开始艰难的没有1A 的生活) #inc ...

  5. OC文件操作(2)

    NSFileManager 文件管理器完成文件的创建.移动.拷贝等管理操作 1.查询文件和目录  OC中查询路径下的目录主要分为浅度遍历和深度遍历.  浅度遍历  NSFileManager * ma ...

  6. JQuery zoom插件学习

    jquery zoom是一款图片放大插件,经常用在商城商品页面里. 使用JQuery zoom插件,除了需要引入JQuery.js外,还要引入JQuery.zoom.js文件及jqzoom.css文件 ...

  7. Android JNI和NDK关系

    1.什么JNI Java Native Interface(JNI)标准是java平台的一部分,它允许Java代码和其他语言写的代码进行交互.JNI 是本地编程接口,它使得在 Java 虚拟机(VM) ...

  8. 学习WindowsPhone 2013/12/22

    菜鸟一枚,只能边看别人的博客变学习来提升自己,参考博客内容:http://blog.csdn.net/column/details/wp-comming.html?page=3 ,稍微看了一下,写的还 ...

  9. ACM组队安排

    Problem Description   ACM亚洲区比赛结束,意味着开始备战明年的浙江省大学生程序设计竞赛了!  杭州电子科技大学ACM集训队也准备开始组队.  教练想把所有的n个队员组成若干支队 ...

  10. 使用模版引擎填充重复dom元素

    引入arttemplate,定义newajax发送跨域请求获得数据,将获得的数据用定义的格式渲染 <!DOCTYPE html><html lang="en"&g ...