VS Code:g++命令实现多文件编译运行


1. 背景

  VS是一个基本完整的开发工具集,其编译运行和文件导入等操作相对方便,而VS Code只是一个代码编辑器,它实质上通过Mingw-w64来实现对C/C++程序的编译和运行。现总结使用g++命令来编译运行多个.cpp文件。

2. 编译运行

2.1 单个文件

main.cpp代码:

#include <iostream>
using namespace std;

int main()
{
    int m1 = 3, m2 = 6;
    int sum = m1 + m2;
    cout << m1 << "+" << m2 << "=" << sum << endl;
    return 0;
}

g++命令:

g++ main.cpp -o main.exe && main.exe

注意:
  操作系统版本不同,其终端命令可能不同,在本文中使用windows7(32位)。在windows10(64位),其终端命令可能如下所示:

g++ main.cpp -o main.exe; ./main.exe

  若main.cpp不在根目录下,则需跳转到main.cpp所在目录或使用绝对地址。

cd E:\1 && g++ main.cpp -o main.exe && main.exe
g++ E:\1\main.cpp -o E:\1\main.exe && E:\1\main.exe

运行结果:
运行结果

2.2 同一目录下的文件

main.h代码:

#include <iostream>
using namespace std;

main.cpp代码:

#include "main.h"

int main()
{
    int m1 = 3, m2 = 6;
    int sum = m1 + m2;
    cout << m1 << "+" << m2 << "=" << sum << endl;
    return 0;
}

g++命令:

扫描二维码关注公众号,回复: 10238903 查看本文章
g++ main.cpp -o main.exe && main.exe

运行结果:
运行结果

sum.h代码:

#include <iostream>
using namespace std;

extern int m1, m2;
extern int sum(int x1, int x2);

sum.cpp代码:

#include "sum.h"

int m1 = 3, m2 = 6;

int sum(int x1, int x2)
{
    return x1 + x2;
}

main.cpp代码:

#include "sum.h"

int main()
{
    cout << m1 << "+" << m2 << "=" << sum(m1, m2) << endl;
    return 0;
}

g++命令:

g++ main.cpp sum.cpp -o main.exe && main.exe

运行结果:
运行结果

2.3 同一目录下另一文件夹中的文件

main.h代码:

#include <iostream>
using namespace std;

main.cpp代码:

#include "main_h/main.h"

int main()
{
    int m1 = 3, m2 = 6;
    int sum = m1 + m2;
    cout << m1 << "+" << m2 << "=" << sum << endl;
    return 0;
}

g++命令:

g++ main.cpp -o main.exe && main.exe

运行结果:
运行结果

sum.h代码:

#include <iostream>
using namespace std;

extern int m1, m2;
extern int sum(int x1, int x2);

sum.cpp代码:

#include "sum.h"

int m1 = 3, m2 = 6;

int sum(int x1, int x2)
{
    return x1 + x2;
}

main.cpp代码:

#include "sum/sum.h"

int main()
{
    cout << m1 << "+" << m2 << "=" << sum(m1, m2) << endl;
    return 0;
}

g++命令:

g++ main.cpp sum/sum.cpp -o main.exe && main.exe

运行结果:
运行结果

2.4 另一目录下的文件

main.h代码:

#include <iostream>
using namespace std;

main_h文件夹位置

main.cpp代码:

#include "C:\Users\Administrator\Desktop\main_h\main.h"

int main()
{
    int m1 = 3, m2 = 6;
    int sum = m1 + m2;
    cout << m1 << "+" << m2 << "=" << sum << endl;
    return 0;
}

g++命令:

g++ main.cpp -o main.exe && main.exe

运行结果:
运行结果

sum.h代码:

#include <iostream>
using namespace std;

extern int m1, m2;
extern int sum(int x1, int x2);

sum.cpp代码:

#include "sum.h"

int m1 = 3, m2 = 6;

int sum(int x1, int x2)
{
    return x1 + x2;
}

sum文件夹位置

main.cpp代码:

#include "C:\Users\Administrator\Desktop\sum\sum.h"

int main()
{
    cout << m1 << "+" << m2 << "=" << sum(m1, m2) << endl;
    return 0;
}

g++命令:

g++ main.cpp C:\Users\Administrator\Desktop\sum\sum.cpp -o main.exe && main.exe

运行结果:
运行结果

3. 总结

  1. g++与gcc是不同的。g++是C++编译器。gcc是C编译器,若想编译C++程序还需要带上“-lstdc++”。

  2. 若文件中只导入.h文件,g++命令不变。

g++ ***.cpp -o ***.exe && ***.exe
  1. 若文件中导入.cpp文件,需要根据.cpp文件位置需修改g++命令。

同一目录同一文件夹下:

g++ ***.cpp ***.cpp -o ***.exe && ***.exe

同一目录不同文件夹下(相对路径):

g++ ***.cpp ***\***.cpp -o ***.exe && ***.exe

不同目录下(绝对路径):

g++ ***.cpp C:\***\***\***.cpp -o ***.exe && ***.exe
  1. 对于文件较少,如一两个.h和.cpp文件,使用g++命令行编译比较方便。但若是文件较多,有十多个,那推荐使用Mingw-w64的bin目录下的mingw32-make.exe来编译。在makefile写下所有命令,在终端只需输入make即可运行。想简单运行makefile,可以参考Makefile文件详解一(怎么在Windows下使用Makefile文件),想深入了解,可以细读陈浩大神的文章Makefile教程(绝对经典,所有问题看这一篇足够了)
发布了77 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_34801642/article/details/103770219