vim MinGW g++编译非常慢

1bqhqjot  于 2023-04-30  发布在  其他
关注(0)|答案(2)|浏览(203)

我开始使用Vim进行C竞争性编程,我遇到了一个问题。为了编译,我使用MinGW g编译器作为教程。代码编译,但我有问题,任何程序编译和运行非常慢。例如,编译并运行下一个代码:

#include <iostream>
using namespace std ; 

int main()
{
 cout<<"Hello World"<<endl;
}

(最简单的程序)编译和运行需要6到8秒。
在Vim中,我有这样的快捷方式:

autocmd filetype cpp nnoremap <C-r> :w <bar> !g++ -std=c++14 -Wall % -o %:r && %:r.exe <cr>

你能帮我找出为什么我会有这样的问题吗?例如William Lin(竞争型程序员也使用Vim,我的shortuc和他的相似,但他的程序立即运行)。

lawou6xi

lawou6xi1#

这是一个耻辱说这一点,但问题是在防病毒。因为我认为它减慢了检查一些病毒唐斯过程

soat7uwm

soat7uwm2#

基本上william和大多数其他CPers使用所谓的预编译头文件,以加快编译时间,而不是执行。要做到这一点,首先去你的位文件夹。我是用msys2安装的,下面是我的路径:

C:\msys64\mingw64\include\c++\12.1.0\x86_64-w64-mingw32\bits

当你进入这个文件夹,你会看到一个名为stdc++.h的文件.这是每次在源代码中包含bits/stdc++.h时都会编译的文件。编译时间增加,因为它还包括一些通常不使用的不必要的头。但是为了可读性和代码短,程序员一般会包含这个文件。

现在要预编译这个文件,请在与bits相同的文件夹中打开终端,或者在windows中单击地址栏,键入cmd,然后按回车键打开同一文件夹中的命令提示符。

然后运行以下命令g++ stdc++.h -std=c++17。虽然你可以将c17部分更改为你喜欢的任何部分(14或20),但我建议使用c17,因为它被大多数新的在线法官支持,并且被广泛使用。您将看到一个stdc++.gch文件创建在您的文件夹中,该文件将是一个大的大小(约93 MB的c17和约103 MB的c20)。
现在,无论何时您将编译您的文件。不会花太多时间。

相关问题