g++ 命令的使用
- 引入头文件
- 编译多个源文件
- 调试
- 实例
引入头文件
当我们只编译一个main.cpp文件时输入:
g++ -o a.out main.cpp
当我们需要编译一个头文件和一个源文件如:common.h和main.cpp文件时:
假设common.h与main.cpp在同一文件夹下:
g++ -o a.out main.cpp -I .
common.h在/home/user/include文件夹下:
g++ -o a.out main.cpp -I /home/user/include/
注:可以在我提供的实例代码中发现,我在引用common.h时使用的是<common.h>
其意义是去系统路径下找该文件,所以需要将目录/home/user/include/添加到此次编译的系统路径。如果是“common.h”则先在系统路径下找,再在到当前目录下找。所以如果是“common.h”,则不需要添加-I /home/user/include/
只写
g++ -o a.out main.cpp
即可。
编译多个源文件
当我们需要编译一个头文件和两个源文件如:common.h,common.cpp和main.cpp文件时:
g++ -o a.out main.cpp common.cpp -I /home/user/include/
调试
想要调试,我们需要生成具有调试信息可执行文件。
当我们需要调试上面的程序时,需要先编译,在编译时要加一个编译器参数(-g
)来添加调试信息,命令如下:
g++ -g -o a.out main.cpp common.cpp -I .
实例
把代码贴出来:
common.h:
#ifndef COMMON_H
#define COMMON_H
#include <iostream>
class A
{
public:
void foo();
};
#endif
common.cpp:
#include <common.h>
void A::foo()
{
std::cout<<"foo..."<<std::endl;
}
main.cpp:
#include <common.h>
int main()
{
A a;
a.foo();
return 0;
}
命令行输入:
g++ -g -o a.out main.cpp common.cpp -I .
程序可调试。