Linux环境下的c++程序编译运行

 public.h头文件编写

#include<iostream>
using namespace std;
void func();

 

public.cpp源文件编写 

#include "public.h"
using namespace std;
void func()
{
        cout<<"func"<<endl;
}

test.cpp包含主函数的源文件的编写

#include<iostream>
#include "public.h"
using namespace std;
int main()
{
func();
cout<<"nihao"<<endl;
}

编写好上述代码,保存并退出

编译运行

[old@localhost ~]$ vim public.h
[old@localhost ~]$ vim public.cpp
[old@localhost ~]$ vim test.cpp
[old@localhost ~]$ g++ -o test test.cpp public.cpp -O2
[old@localhost ~]$ ./test
func
nihao

注意

-o          指定输出的文件名,这个名称不能和源文件同名。如果不给出这个选项,则生成可执行文件a.out。

-g          如果想对源代码进行调试,必须加入这个选项。

-On       在编译、链接过程中进行优化处理,生成的可执行程序效率将更高。

-c          编译,不链接成为可执行文件,通常用于把源文件编译成静态库或动态库。

-std=c++11 支持C++11标准。

优化选项:

-O0: 不做任何优化,这是默认的编译选项。 

-O-O1: 对程序做部分编译优化,对于大函数,优化编译占用稍微多的时间和相当大的内存。使用本项优化,编译器会尝试减小生成代码的尺寸,以及缩短执行时间,但并不执行需要占用大量编译时间的优化。 

-O2: 这是推荐的优化等级。与O1比较而言,O2优化增加了编译时间的基础上,提高了生成代码的执行效率。

-O3: 这是最高最危险的优化等级。用这个选项会延长编译代码的时间,并且在使用gcc4.x的系统里不应全局启用。自从3.x版本以来gcc的行为已经有了极大地改变。在3.x,-O3生成的代码也只是比-O2快一点点而已,而gcc4.x中还未必更快。用-O3来编译所有的软件包将产生更大体积更耗内存的二进制文件,大大增加编译失败的机会或不可预知的程序行为(包括错误)。这样做将得不偿失,记住过犹不及。在gcc 4.x.中使用-O3是不推荐的。

如果使用了优化选项:1)编译的时间将更长;2)目标程序不可调试;3)有效果,但是不可能显著提升程序的性能。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值