关于编译的一些小知识
来源:互联网 发布:音乐网站 知乎 编辑:程序博客网 时间:2024/05/21 05:21
GNU编译器g++编译c++程序:
在Windows下,进入源代码所在的路径下,在命令行中输入:
g++ -o test.exe test.cpp
将test.cpp编译生成test.exe可执行文件,如果没有-o test.exe选项,默认生成a.exe
在Linux下,进入源代码所在的路径下,在命令行中输入:
g++ -o test test.cpp
将test.cpp编译生成test可执行文件(Linux下文件没有后缀名,通过文件属性和执行权限识别),默认生成a.out,可能需要在命令尾部输入-std=c++0x来支持c++11标准
注意:可添加-Wall选项来开启所有警告,-w来忽略所有警告(严重不推荐)
微软visual studio编译器编译c++程序:
在Windows下,开始->所有程序->visual studio->visual studio tools->运行vs开发人员命令提示,在命令行中输入:
cl /EHsc test.cpp
生成test.exe文件(/EHsc参数来打开标准异常)
在Linux下无visual studio编译器
注意:可添加/W4来开启所有警告
分离编译器编译源文件的过程
Linux下gcc分步编译hello world为例
由上图可知,hello的c文件到可执行文件经历了预处理、编译、汇编、链接等几个过程,下面进行分步编译过程:
.c文件经过预处理生成.i文件(将#include里面的内容添加到.c文件中形成.i文件)
gcc -o hello.i -E hello.c
.i文件编译生成.s汇编文件
gcc -o hello.s -S hello.i
.s汇编文件汇编生成.o目标文件(二进制文件)
gcc -o hello.o -c hello.s
.o目标文件链接生成可执行文件(链接一些动态静态库)
gcc -o hello hello.o
至此生成hello的可执行文件
0 0
- 关于编译的一些小知识
- 关于Java编程的一些小知识
- 关于Servlet的一些小知识
- 关于String的一些小知识
- 关于javascript的一些小知识
- 关于navigation的一些小知识
- 关于网络通信的一些小知识
- 关于Win7的一些小知识
- [转载] 关于ckEditor 的一些小知识
- 关于PC的一些小知识
- 关于APK签名的一些小知识
- 关于linux环境变量的一些小知识
- 一些关于android屏幕的小知识
- 关于JAVA的一些小知识
- 关于存储设备的一些小知识
- 关于Integer对象的一些小知识
- 关于网站的一些小知识
- 关于SpringDataJPA的一些小知识
- 从hadoop 2.2.2 伪分布模式搭建环境准备
- 台湾国立大学机器学习基石.听课笔记(第九讲):Linear Regression
- oracle 学习笔记(二)
- 虚拟机与宿主机互通
- Qt控件随窗口大小变化的设置方法(QTDesigner)
- 关于编译的一些小知识
- 黑马程序员——ios基础---C语言:数据类型、运算符、选择结构
- Hibernate中的延迟加载机制
- Java JDBC 学习笔记 - 可更新的结果集
- myHttpRequestVolley
- 转战Androidstudio之项目eclipse迁移
- 快速排序
- 【leetcode】 Wildcard Matching
- CWinApp