linux 编写C++ 基本指令

本文详细介绍了C++程序的编译过程,包括预处理、汇编和编译阶段。通过实例展示了如何使用g++命令进行编译,并讲解了-E、-S和-c选项的作用。同时,提到了-I参数指定头文件路径和-L参数指定库文件路径的方法。此外,还简要提及了makefile中变量的使用。
摘要由CSDN通过智能技术生成

一、基本编译指令

以下面一段代码为例:

/* helloworld.cpp */
#include <iostream>
int main(int argc,char *argv[])
{
    std::cout << "hello, world" << std::endl;
    return(0);
}

直接编译出可执行文件  g++ helloworld.cpp -o helloworld

执行: ./helloworld

我们也可以将cpp源文件分步编译,编译步骤:

选项 -E 使 g++ 将源代码用编译预处理器处理后不再执行其他动作。$ gcc -E helloworld.cpp -o helloworld.i
本文前面所列出的 helloworld.cpp 的源代码,仅仅有六行,而且该程序除了显示一行文字外什么都不做,但是,预处理后的版本将超过 1200 行。

这主要是因为头文件 iostream 被包含进来,而且它又包含了其他的头文件,除此之外,还有若干个处理输入和输出的类的定义。

 

生成汇编代码
选项 -S 指示编译器将程序编译成汇编语言,输出汇编语言代码而後结束。下面的命令将由 C++ 源码文件生成汇编语言文件 helloworld.s

如:$ g++ -S helloworld.cpp -o helloworld.s
 

选项 -c 用来告诉编译器编译源代码但不要执行链接,输出结果为对象文件。

g++ -c hellospeak.cpp -o hellospeak.o

 

二 、其它常用命令

PS:这里说一下为什么在命令中没有提到头文件(如果有的话)

原因是:在“.cpp“中包含有”#include"xxx.h"“这句代码,它的意思是搜索系统头文件目录之前将先在当前目录中搜索文件“xxx.h“。而”xxx.h“正在该目录中,不用再在命令中指定了。
 

头文件 使用编译选项-I参数来指定头文件路径(和源文件不在同一目录时)

g++ -c -I/home/path main.cpp -o main.o

-I/home/path 指定头文件路径(当头文件和cpp文件不在一个目录时)

 

库文件

g++ main.o -o exeProgram -L/home/path -lexample

-L/home/path -lexample 指定库文件的路径

 

在makefile文件中可以定义一个变量名来代替上面的路径

CXXFLAGS += -I/home/path

LDFLAGS += -L/home/path

g++ -c $(CXXFLAGS)  main.cpp -o main.o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值