C++ —— 构建开源的开发环境
目录:
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++ —— 构建开源的开发环境的更多相关文章
- [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)
[.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux) 1.关于跨平台 上篇中介绍了MVC的发展历程,说到ASP.NET ...
- Spark:利用Eclipse构建Spark集成开发环境
前一篇文章“Apache Spark学习:将Spark部署到Hadoop 2.2.0上”介绍了如何使用Maven编译生成可直接运行在Hadoop 2.2.0上的Spark jar包,而本文则在此基础上 ...
- 为 Python Server Pages 和 Oracle 构建快速 Web 开发环境。
为 Python Server Pages 和 Oracle 构建快速 Web 开发环境. - 在水一方 - 博客频道 - CSDN.NET 为 Python Server Pages 和 Oracl ...
- 使用Eclipse+Maven+Jetty构建Java Web开发环境(几个教程综合集成2014发行)
工作需要使用Jetty由于web集装箱,得知Eclipse+Maven+Jetty该组合是非常好的,因此,要在网上找了很多教程,但不写或多或少特定的或过时的内容而导致最终的配置失败,易于配置为未来的同 ...
- 强推一款开源集成开发环境——Geany
本人是一个标标准准的程序员,集成开发环境在电脑上大概看一下有:Code Blocks(C/C++),VS(C#,C/C++),eclipse(Java),Hbuild和web storm(前端),py ...
- vue第三单元(webpack的应用-能根据具体的需求构建对应的开发环境)
第三单元(webpack的应用-能根据具体的需求构建对应的开发环境) #课程目标 理解什么是单页面应用. 掌握单页面和多页面的差异. 了解单页面的实现原理. 掌握模块化的方式实现webpack配置,区 ...
- Python开发篇——构建虚拟Python开发环境(Conda+Poetry)
前言 之前虽略有提及Python,但是没有实际地写点料.惭愧,惭愧,所以这次先起个头,讲讲如何构建虚拟Python开发环境.相信之前看过我博客的人可能会想:博主不会又要聊聊Docker吧?放心,不会. ...
- Visual Studio Code 构建C/C++开发环境
转自: https://blog.csdn.net/lidong_12664196/article/details/68928136#visual-sutdio-code%E4%BB%A5%E5%8F ...
- Win10系统下安装编辑器之神(The God of Editor)Vim并且构建Python生态开发环境(2020年最新攻略)
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_160 众神殿内,依次坐着Editplus.Atom.Sublime.Vscode.JetBrains家族.Comodo等等一众编辑 ...
随机推荐
- Proxy 模式
在以下集中情况下可以用 Proxy模式解决问题: 1)创建开销大的对象时候,比如显示一幅大的图片,我们将这个创建的过程交给代理去完成,GoF 称之为虚代理(Virtual Proxy): 2)为网络上 ...
- 使用BeanUtils组件
使用BeanUtils组件 前提 1:导入commons-beanutils-1.8.3.jar //根据 本人使用的是1.8.3的版本 2:导入日志包 //就是loggin ...
- linux防火墙解封某端口
首先,使用netstat –tunlp查看是否23端口被防火墙封掉了: 再使用iptables修改设置, # iptables -I INPUT -p tcp --dport 23 –jACCEPT ...
- 从 man 指令起步(info简介)
前言 小生认为一切指令的学习首先要从帮助入手,深入了解它的功能,即使是在实际项目中我们都离不开它的帮助.因为我们不一定能够记住全部指令的全部的相关功能,因此,查看指令的帮助是我们的不二选择. 正文 下 ...
- visual studio中验证控件的使用
1.RequiredFieldValidator:验证一个必填字段,如果这个字段没填,那么,将不能提交信息. RequiredFieldValidator控件中,主要设置三个属性: (1)ErrorM ...
- Canvas实现文字粒子化,并且绕轴旋转(初号机)
写下来发现,程序在细节上处理的很差,比如旋转的时候,在终点处有明显的撞墙感觉,以及小部分粒子存在精度差异,导致撞击后不与整体平衡. 注释全在代码中了,就不多说了,另外感觉写的旋转的规则有点怪,后续再调 ...
- js 判断时间,满足执行框架
// 8点到早上19点关var curr = new Date();var time = curr.getHours(); if ( time >=0 && time <2 ...
- 【技术宅6】把一个无限级分类循环成tree结构
function list_to_tree($list,$root=0,$pk='cid',$pid = 'pid',$child = '_child'){ if(is_array($list)) { ...
- CSS远程加载字体
CSS 远程加载字体的方法,做网站CSS的都知道,用户浏览网站时,网页上的字体是加载本地的.换言之,如果网站使用了用户电脑所没有安装的字体,那显示字体就会被默认字体所代替了,自然效果就大受影响了. 上 ...
- js+dom开发第十六天
一.css常用标签及页面布局 1.常用标签 position(定位) z-index(定位多层顺序) background(背景) text-align(针对字符自动左右居中) margin(外边距) ...