在Linux下使用GCC/G++来编译执行C/C++代码
C++代码编译:
g++ -c main.cpp -o main.o
g++ -c Circle.cpp -o Circle.o
g++ main.o Circle.o -o main
./main
注:用-c 编译出各自的目标文件,在合并编译出可执行文件main
C语言编译同上,把g++换成gcc即可,如下:
gcc -c main.c -o main.o
gcc -c sub.c -o sub.o
gcc main.o sub.o -o main
./main
下面举例C++的示例代码(C语言省略):
文件1:main.cpp
#include "Circle.h"
#include <iostream>
using namespace std;
int main(int argc,char *argv[])
{
Circle c(3);
cout << "Area=" << c.Area() << endl;
c.display();
return 0;
}
文件2源文件:Circle.cpp
#include "Circle.h"
#include <iostream>
using namespace std;
Circle::Circle() {this->r = 5.0;}
Circle::Circle(double R) {this->r = R;}
double Circle::Area() {return 3.14*r*r;}
void Circle::display() {cout << "Area=" << Area() << endl;}
文件2头文件:Circle.h
#ifndef CIRCLE_H
#define CIRCLE_H
class Circle
{
private:
double r;
public:
Circle();
Circle(double R);
double Area();
void display();
};
#endif
更多文件时,编译更多,使用makefile文件更佳
编写makefile文件后,在当前目录下,在命令行$make执行即可
makefile文件示例:makefile
#explain
main:main.o Circle.o
g++ main.o Circle.o -o main
Circle.o:Circle.cpp
g++ -c Circle.cpp -o Circle.o
main.o:main.cpp
g++ -c main.cpp -o main.o
多个文件时,可在Makefile里继续追加相应源文件的编译。