在Linux下使用g++编译cpp工程的方法共分为以下几个步骤:
1. 安装g++
在终端输入以下命令安装g++:
sudo apt-get update
sudo apt-get install g++
2. 准备工程文件
创建一个名为my_project的文件夹,在其下创建三个cpp文件,分别为main.cpp、function1.cpp和function2.cpp。其中main.cpp文件包含main函数,其他两个文件包含功能函数。
3. 编写Makefile
在my_project文件夹下新建一个名为Makefile的文件,并在其中加入以下内容:
CC = g++
CPPFLAGS = -Wall -std=c++11
OBJS = main.o function1.o function2.o
my_app: $(OBJS)
$(CC) $(CPPFLAGS) -o my_app $(OBJS)
main.o: main.cpp
$(CC) $(CPPFLAGS) -c main.cpp
function1.o: function1.cpp
$(CC) $(CPPFLAGS) -c function1.cpp
function2.o: function2.cpp
$(CC) $(CPPFLAGS) -c function2.cpp
clean:
rm -rf *.o my_app
4. 编译工程
在终端进入my_project文件夹,输入以下命令进行编译:
make
示例1
以下是一个带有参数的函数调用的示例,用于计算斐波那契数列的第n项。
main.cpp
#include <iostream>
#include "function1.h"
using namespace std;
int main(int argc, char** argv) {
int n = stoi(argv[1]);
cout << "斐波那契数列的第 " << n << " 项为:" << fibonacci(n) << endl;
return 0;
}
function1.h
#ifndef FUNCTION1_H
#define FUNCTION1_H
int fibonacci(int n);
#endif
function1.cpp
#include "function1.h"
#include "function2.h"
int fibonacci(int n) {
if (n == 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
return fibonacci(n-1) + fibonacci(n-2);
}
}
function2.h
#ifndef FUNCTION2_H
#define FUNCTION2_H
#endif
示例2
以下示例是一个简单的计算器,实现加减乘除四种运算。
main.cpp
#include <iostream>
#include "function1.h"
using namespace std;
int main() {
double a, b;
char op;
cout << "请输入两个数和运算符,以空格隔开:";
cin >> a >> b >> op;
switch (op) {
case '+':
cout << a << " + " << b << " = " << add(a, b) << endl;
break;
case '-':
cout << a << " - " << b << " = " << subtract(a, b) << endl;
break;
case '*':
cout << a << " * " << b << " = " << multiply(a, b) << endl;
break;
case '/':
cout << a << " / " << b << " = " << divide(a, b) << endl;
break;
default:
cout << "无效的运算符!" << endl;
break;
}
return 0;
}
function1.h
#ifndef FUNCTION1_H
#define FUNCTION1_H
double add(double a, double b);
double subtract(double a, double b);
double multiply(double a, double b);
double divide(double a, double b);
#endif
function1.cpp
#include "function1.h"
double add(double a, double b) {
return a + b;
}
double subtract(double a, double b) {
return a - b;
}
double multiply(double a, double b) {
return a * b;
}
double divide(double a, double b) {
return a / b;
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux下使用g++编译cpp工程的方法 - Python技术站