《C++ Primer Plus》学习笔记——C++程序创建到运行的整个过程
当你编写了一个C++,如何让它运行起来呢?具体的步骤取决于计算机环境和使用的C++编译器,但大体如下:
1.使用文本编辑器编写程序,并将其保存到文件中,这个文件就是程序的源代码。
2.编译源代码。这意味着运行一个程序,将源代码翻译为主机是用的内部语言——机器语言。包含了翻译后的程序的文件就是程序的目标代码(object code)。
3.强目标代码与其他代码连接起来。例如,C++程序通常使用库。C++库包含一系列计算机课程(被称为函数)的目标代码,这些函数可以执行诸如在屏幕上显示信息或计算平方根等任务。链接指的是将目标代码同使用的函数的目标函数的目标代码以及一些标准的启动代码(startup code)组合起来,生成程序的运行阶段版本。包含最终产品的文件被称为可执行代码。
本书的程序都是通用的,可在任何支持C++98的系统中运行;但第18章的程序要求系统支持C++11。编写本书期间,有些编译器要求您使用特定的标记,让其支持部分C++11特性。例如,从4.3版本起,G++要求您变异源代码文件时使用标记-std=c++0x:
g++ -std=c++0x use_auto.cpp
步骤:
1.创建源代码文件
表1.1 源代码文件的扩展名
C++实现 |
源代码文件的后缀名 |
UNIX |
C、cc、cxx、c |
GNU C++ |
C、cc、cxx、cpp、c++ |
Digital Mars |
cpp、cxx |
Borland C++ |
cpp |
Watcom |
cpp |
Microsoft Visual C++ |
cpp、cxx、cc |
Freestyle Code Warrior |
cp、cpp、cc、cxx、c++ |
2.编译和链接
1.Unix编译和链接
……
2.Linux编译和链接
Linux系统中最常用的编译器是g++。
下面的命令将生成可执行文件a.out:
g++ spiffy.cxx
有些版本可能要求链接C++库:
g++ spiffy.cxx -lg++
要编译多个源文件,只需将他们全部放到命令行中即可:
g++ my.cxx precious.cxx
这将生成一份名为a.out的可执行文件和两个目标代码文件my.o和precious.o。如果接下来修改了其中的某个源代码文件,如my.cxx,则可以使用my.cxx和precious.o来重新编译:
g++ my.cxx precious.o
3.Windows命令行编译器
……
4.Windows编译器
……
5.Macintosh上的C++
《C++ Primer Plus》学习笔记——C++程序创建到运行的整个过程相关推荐
- C++ Primer Plus 学习笔记(第 4 章 复合类型)
C++ Primer Plus 学习笔记 第 4 章 复合类型 数组 数组(array)是一种数据格式,能够存储多个同类型的值. 要创建数组,可使用声明语句.数组声明应指出以下三点: 存储在每个元素的 ...
- 【opencv学习笔记八】创建TrackBar轨迹条
createTrackbar这个函数我们以后会经常用到,它创建一个可以调整数值的轨迹条,并将轨迹条附加到指定的窗口上,使用起来很方便.首先大家要记住,它往往会和一个回调函数配合起来使用.先看下他的函数 ...
- Linux学习笔记---使用BusyBox创建根文件系统(四)
目录 软件运行测试 设置程序为后台运行 设置开机自启动 外网连接测试 软件运行测试 进入到rootfs文件夹中新建一个drivers文件夹,用于存放编写的软件. 新建hello.c文件 输入以下代码 ...
- Linux学习笔记---使用BusyBox创建根文件系统(三)
目录 创建/etc/init.d/rcS 文件 创建/etc/fstab 文件 创建/etc/inittab 文件 创建/etc/init.d/rcS 文件 通过nfs加载根文件系统成功后,在串口终端 ...
- [电离层建模学习笔记]开源程序M_GIM学习记录
[电离层建模学习笔记]开源程序M_GIM学习记录 文章目录 [电离层建模学习笔记]开源程序M_GIM学习记录 1. 程序相关信息 2. 程序学习记录 2.1 采用的数据说明 2.2 程序运行前 2.3 ...
- 学习笔记--存储过程的创建和调用
学习笔记–存储过程的创建和调用 定义 存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用多次.如果某次操作需要执行多次SQL,使用存储过程比单纯SQL ...
- CUDA学习笔记之程序优化
CUDA学习笔记之程序优化 标签: cuda优化conflict存储算法数学计算 2010-01-05 17:18 5035人阅读 评论(4) 收藏 举报 分类: CUDA(6) 版权声明:本文为博主 ...
- html 流程控制,HTML5独家分享:原生JS学习笔记2——程序流程控制
当当当当 .....楼主又来了!新一期的js学习笔记2--程序流程控制更新了! 想一键获取全部js学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1.顺序结构 2.分支 ...
- Linux学习笔记---使用BusyBox创建根文件系统(二)
目录 向 rootfs 的"/lib "目录添加库文件 向 rootfs 的usr/lib 目录添加库文件 创建其他文件夹 根文件系统初步测试 向 rootfs 的"/l ...
最新文章
- python网络爬虫的基本步骤-十分钟教会你用Python写网络爬虫程序
- verilog异步复位jk触发器_异步复位同步释放原理
- ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(四) 添加表情、群聊功能...
- 光耦驱动单向可控硅_单向可控硅最筒单电路图大全
- Nacos初探(3)-- 服务发现原理解析
- python爬虫豆瓣推理书籍及链接
- MSP430学习笔记1——msp430概述
- 【转】如何用中控系统建造震撼的家庭影院
- 拉姆达表达式启动一个线程
- 【译】浏览器如何工作:在现代web浏览器场景的之下
- 计算机联锁系统故障处理流程图,铁路TYJL Ⅱ型计算机联锁操作流程图
- 傲天AC EAG误配置导致Portal推送失败案例
- VS2017 常用函数与数据类型-笔记
- 基于android的互动健身平台,基于Android和ARM的智能健身系统的设计与实现
- 学习写微信小程序(2)
- 7-3 水仙花数(20 分) (20 分)(PTA Python版本)
- python获取ALM数据
- 奶牛家族(斐波那契数列的快速幂乘矩阵算法)
- 在ADSP21489下外挂S29AL016J并行FLASH调试记录
- 2022-2028年中国半导体分立器件制造行业全景调研及竞争格局预测报告