g++基本用法

单个源程序

1 无选项编译连接

g++ test.cpp //默认输出a.out

将test.cpp 预处理汇编编译链接形成可执行文件。

2 选项-o

g++ test.cpp -o test //-o用于指定输出文件名

将test.cpp预处理、汇编、编译并链接形成可执行文件。

3 选项-E

g++ -E test.cpp

显示终端过程,不生成test.i文件

g++ -E test.cpp -o test.i

将test.cpp预处理生成test.i

4 选项-S

g++ -S test.i

将预处理输出的文件test.i汇编成test.s文件,效果与g++ -S test.i -o test.s相同。

5 选项-c

g++ -c test.s

将汇编生成的test.s文件编译输出为test.o文件,效果与g++ -c test.s -o test.o相同。

6 无选项链接

g++ test.o -o test

将编译输出文件test.o链接成最终可执行文件test。

7 选项-O

g++ -O1 test.c -o test

使用编译优化级别1编译程序。级别为1~3,级别越大优化效果越好,但编译时间越长。


多源程序

假设有两个源文件为test.c和testfun.c

1 多个文件一起编译

g++ testfun.c test.c -o test

作用:将testfun.c和test.c分别编译后链接成test可执行文件。

假设我们有个目录/usr,在/usr中分别存有两个目录/proone和/protwo。我们把源程序*.cpp放在/proone中,把头文件放在/protwo中。现在我们执行g++ a.cpp b.cpp -o abc后终端会显示头文件出错,即找不到头文件。这时我们应该执行g++ a.cpp b.cpp -I../protwo -o abc。参数-I是确定头文件的路径。若是/protwo和/usr在同一目录下,即头文件目录比目标源程序高两个等级,则相应的-I../protwo要变为-I../../protwo。

2 分别编译各个源文件,之后对编译后输出的目标文件链接。

gcc -c testfun.c //将testfun.c编译成testfun.o
gcc -c test.c //将test.c编译成test.o
gcc testfun.o test.o -o test //将testfun.o和test.o链接成test

以上两种方法相比较,第一种方法编译时需要所有文件重新编译,而第二种方法可以只重新编译修改的文件,未修改的文件不用重新编译。 

时间: 2024-10-21 14:27:16

g++基本用法的相关文章

正则表达式中的"g"是什么意思附件参数g的用法_正则表达式

为了解答"正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?"这个问题,也为了能够便于大家对正则表达式有一个更为综合和深刻的认识,我将一些关键点和容易犯糊涂的地方再系统总结一下. 总结1:附件参数g的用法 表达式加上参数g之后,表明可以进行全局匹配,注意这里"可以"的含义.我们详细叙述: 1)对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行返回第二个匹

正则表达式中的"g"是什么意思附件参数g的用法

为了解答"正则表达式(/[^0-9]/g,'')中的"/g"是什么意思?"这个问题,也为了能够便于大家对正则表达式有一个更为综合和深刻的认识,我将一些关键点和容易犯糊涂的地方再系统总结一下. 总结1:附件参数g的用法 表达式加上参数g之后,表明可以进行全局匹配,注意这里"可以"的含义.我们详细叙述: 1)对于表达式对象的exec方法,不加入g,则只返回第一个匹配,无论执行多少次均是如此,如果加入g,则第一次执行也返回第一个匹配,再执行返回第二个匹

js控制文本框只输入数字和小数点的方法

 这篇文章主要介绍了js控制文本框只输入数字和小数点的方法,实例分析了javascript使用正则表达式实现限制数字和小数点的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了js控制文本框只输入数字和小数点的方法.分享给大家供大家参考.具体实现方法如下: 代码如下: function clearNoNum(obj) { obj.value = obj.value.replace(/[^d.]/g, "");//清除"数字"和".&q

Chrome Extension in CLJS —— 搭建开发环境

前言  磨刀不误砍柴工,本篇将介绍如何搭建Chrome插件的ClojureScript开发环境. 具体工具栈:vim(paredit,tslime,vim-clojure-static,vim-fireplace) + leiningen(lein-cljsbuild,lein-doo,lein-ancient) + com.cemerick/piggieback 写得要爽  首先抛开将cljs编译为js.调试.测试和发布等问题,首先第一要务是写得爽-  cljs中最让人心烦的就是括号(),过去

Weex调试神器——Weex Devtools使用手册

伴随着weex的正式开源,对一款针对weex框架的简单易用的调试工具的呼声也日趋强烈.weex devtools就是为weex前端和native开发工程师服务的一款调试工具,可同时检查weex里DOM属性和Javascript 代码断点调试,支持IOS和Android两个平台. Chrome devtools对于前端开发者来说最熟悉不过,有广泛的用户基础.weex devtools实现了Chrome Debugging Protocol,其使用体验和普通的web开发一致,对于前端开发者是零学习成

深入学习JavaScript中的原型prototype_基础知识

javascript 是一种 prototype based programming 的语言, 而与我们通常的 class based programming 有很大 的区别,我列举重要的几点如下: 1.函数是first class object, 也就是说函数与对象具有相同的语言地位 2.没有类,只有对象 3.函数也是一种对象,所谓的函数对象 4.对象是按 引用 来传递的 那么这种 prototype based programming 的语言如何实现继承呢(OO的一大基本要素), 这也便是

js控制文本框只输入数字和小数点的方法_javascript技巧

本文实例讲述了js控制文本框只输入数字和小数点的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: function clearNoNum(obj) {  obj.value = obj.value.replace(/[^\d.]/g, "");//清除"数字"和"."以外的字符  obj.value = obj.value.replace(/^\./g, "");//验证第一个字符是数字而不是.  obj.

浅谈JS正则表达式的RegExp对象和括号的使用_javascript技巧

RegExp对象的创建: 常规的正则表达式的创建可用直接量,即斜杠 "/" 括起来的字符.但在要求参数变化的环境下,RegExp()构造函数是更好的选择: var reg1 = /'\w+'/g; var reg2 = new RegExp('\'\\w+\'','g'); 对比两种创建方式,RegExp中的第一个参数为要创建的正则字符串,一方面注意,因为不是直接量的表示形式,因此不用斜杠" / "括起来了:而是字符串中必须要对引号" ' "和转

详解js正则表达式语法介绍_正则表达式

 本文介绍了js正则表达式,具体如下: 1. 正则表达式规则 1.1 普通字符     字母.数字.汉字.下划线.以及后边章节中没有特殊定义的标点符号,都是"普通字符".表达式中的普通字符,在匹配一个字符串的时候,匹配与之相同的一个字符.     举例1:表达式 "c",在匹配字符串 "abcde" 时,匹配结果是:成功:匹配到的内容是:"c":匹配到的位置是:开始于2,结束于3.(注:下标从0开始还是从1开始,因当前编程语言