记G++命令运算符编译C++

调用C++编译器的命令因编译器和操作系统的不同而不同,常用的编译器是GNU编译器和微软Visual Studio编译器。调用GNU编译器的默认命令是g++   --《primer》

gcc 和 g++分别是GNU的C和C++的编译器。一般分成四步:

1. 预处理,生成.i的文件 [预处理器cpp]

2. 将预处理后的文件不转换成汇编语言,生成.s文件[编译器egcs]

3. 有汇编变为目标代码(机器代码)生成.o文件[汇编器as]

4. 连接目标代码,生成可执行程序 [链接器]

下面给出一些例子,运行环境是win7+Cygwin。               

编译

使用编译器将代码编译成二进制目标文件(object file)。

g++  -c   file.cpp  -o   file.o

链接

将二进制目标文件链接起来生成可执行文件

g++  file1.o  file2.o  -o   run.exe

执行

执行可执行文件

 ./run.exe

直接编译成可执行文件

g++ program.cpp -o program

如果在Unix下可执行文件无后缀,在Windows下生成后缀为.exe的可执行文件。-o 是用来改名的参数,如果不写-o program,那么在Unix下生成的是a.out而在Windows下生成的是a.exe的可执行文件。

参数含义整理

-o:  修改生成文件的名字,如果不修改的话名字在Unix下面是a.out,Windows下面是a.exe的可执行文件名字,实在有点难听。用这个参数可以修改默认的名字。

-c:  不做第四步生成可执行文件,只生成.o的目标文件

来自别人的博客——自己留用。

时间: 2024-10-01 07:32:29

记G++命令运算符编译C++的相关文章

gcc/g++ 实战之编译过程

gcc和g++分别是GNU(一个开源组织)的c&c++编译器 对于.c后缀的文件,gcc把它当做是C程序,g++当做是C++程序:对于.cpp后缀的文件,gcc和g++都会当做c++程序.gcc可以根据后缀名为.c或.cpp分别按c程序和c++程序来编译,但是g++无论是.c或.cpp都统一按c++程序来编译. 编译阶段,g++会调用gcc,链接阶段通常会用g++来完成,g++在编译的过程中,其实是调用gcc按照c++程序来编译的.即编译工作最终都是由gcc来完成的.这是因为gcc命令不能自动和

gcc/g++ 实战之编译的四个过程

gcc和g++分别是GNU(一个开源组织)的c&c++编译器 对于.c后缀的文件,gcc把它当做是C程序,g++当做是C++程序:对于.cpp后缀的文件,gcc和g++都会当做c++程序.gcc可以根据后缀名为.c或.cpp分别按c程序和c++程序来编译,但是g++无论是.c或.cpp都统一按c++程序来编译. 编译阶段,g++会调用gcc,链接阶段通常会用g++来完成,g++在编译的过程中,其实是调用gcc按照c++程序来编译的.即编译工作最终都是由gcc来完成的.这是因为gcc命令不能自动和

命令行编译的一点碎碎念

自学习C/C++以来,接触到很多很强大的库,例如opencv,boost等等,但相关的范例和教程书,都提倡在电脑上安装这些库,在一定程度上我是很讨厌这么干的,而是提倡使用命令行编译生成可执行文件,在命令行中注明头文件的位置和库文件的位置. 这么做一方面透明性高,自己在编译时知道使用了什么库,什么头文件,很方便debug. 二来,可以提高可移动性,如果将opencv库编译成链接库文件,安装在/usr/libs/文件夹下,linux系统编译我们的源程序时,自然能够找到这些头文件和库文件,因为这是li

gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解

摘自http://blog.csdn.net/elfprincexu/article/details/45043971 gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解 C和C++编译器是集成的,编译一般分为四个步骤: 预处理(preprocessing)  ----------------- cpp/ gcc -E  编译(compilation) ------------------ cc1 / gcc -S 汇编(assembly)  ----------------

[hadoop]命令行编译并运行hadoop例子WordCount

首先保证JDK.Hadoop安装设置成功 可以参考[linux]ubuntu下安装hadoop [linux]ubutnu12.04 下安装jdk1.7 使用hadoop版本为1.2.1,jdk为1.7 在hadoop-1.2.1\src\examples\org\apache\hadoop\examples找到WordCount.java 源码如下: 1 /** 2 * Licensed under the Apache License, Version 2.0 (the "License&q

gcc/g++ 命令行参数

这些常用的 gcc/g++ 命令行参数,你都知道么? 1. gcc -E source_file.c -E,只执行到预编译.直接输出预编译结果. 2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码. 3. gcc -c source_file.c -c,只执行到编译,输出目标文件. 4. gcc (-E/S/c/) source_file.c -o output_filename -o, 指定输出文件名,可以配合以上三种标签使用. -o 参数可以被

gdb如何调试没有符号表(未加-g选项的编译)的程序

/*********************************************************************  * Author  : Samson  * Date    : 01/30/2015  * Test platform:  *              3.13.0-24-generic  *              GNU bash, 4.3.11(1)-release  * ************************************

从C++到Qt(命令行编译,讲解原理)

Qt 是 C++ 的库,Qt 在 ansi C++ 的基础上进行了一点扩展. 但国内似乎比较浮躁,学Qt的很多连基本的C++如何编译似乎都不太清楚.本文舍弃IDE或qmake.cmake等工具的束缚,尝试通过几个例子,一步一步从标准 C++ 的编译过渡到 Qt 的编译. 本文涉及的都是最基本的东西,或许可以说,只要你用C++ Qt,不管是通过哪种工具(qmake.cmake.boost.build.qtcreator.vs2008.Eclipse....),本文的内容都是需要理解的(尽管真正写程

(转)g++命令

gcc & g++现在是gnu中最主要和最流行的c & c++编译器 . g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c.这时候命令换做gcc即可.其实是无关紧要的. 其实编译器是根据gcc还是g++来确定是按照C标准还是C++标准编译链接. 下面以Test.cpp为例: 命令: g++ Test.cpp 功能:生成默认为a.exe的文件,这个过程包含了编译和链接. 再说下-o命令,-o命令表示输出的意思,gcc/g++命令是非常灵活的,你不指定输出的文件名的时候默认生成