安装gmp静态库
需要用到
msys1.0.18 :msys1.0.18 download | SourceForge.net
gmp6.2.1(下载tar.xz后缀):The GNU MP Bignum Library (gmplib.org)
运行msys.bat以后,讲gmp-6.2.1.tar.xz复制到msys/home/boulevard ,注意这里是自己的用户名
输入 ls 检查是否有.tar.xz文件,若有,继续;若无,上一步放错位置了(可能放到Admin里面了)
输入:
tar -xvf gmp-6.2.0.tar.xz
cd ./gmp-6.2.0
./configure --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --disable-static --enable-shared --enable-cxx
make
make check
make install
编译完成以后,可以看到 msys/home/boulevard/gmp-6.2.1 里面有一堆c++库文件了
配置VSCode
首先打开终端手动g++编译试试
g++ test.cpp -o test.exe -L'D:\\msys\\msys\\home\\boulevard\\gmp-6.2.1\\.libs' -I'D:\\msys\\msys\\home\\boulevard\\gmp-6.2.1' -lgmp
然后配置VSCode一键编译:
c_cpp_properties.json includepath项目加入gmp-6.2.1目录:
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"D:/msys/msys/home/boulevard/gmp-6.2.1"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "D:/MinGW/bin/g++.exe",
"cStandard": "gnu17",
"cppStandard": "gnu++14",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
tasks.json "args"字段加入三个参数:
"tasks": [
{
"type": "shell",
"label": "g++.exe build active file",
"command": "D:/MinGW/bin/g++.exe",
"args": [
"-g",
"${file}",
"-I",
"D:\\msys\\msys\\home\\boulevard\\gmp-6.2.1", //改成你的gmp.h所在文件夹的路径(一般是在gmp文件夹里)
"-L",
"D:\\msys\\msys\\home\\boulevard\\gmp-6.2.1\\.libs",//改成你的libgmp.a静态库所在文件夹的路径(一般在gmp的.libs里)
"-l",
"gmp",//表示libgmp.a(gmp静态库)
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
配置好以后,很多博客都没有说下一步,也就是最后怎么用这一步
VSCode中,写一个有gmpxx.h头文件的cpp代码,点击右上角的小三角形Run Code,可以看到终端的命令还是:
PS E:\programs\cpp> cd "e:\programs\cpp\" ; if ($?) { g++ test.cpp -o test } ; if ($?) { .\test }
当然是不能编译的,没有链接库。
其实这个小三角形还有两个下拉选项:
调试C/C++文件
运行C/C++文件
所以其实我们在调试/运行的时候,需要选择这两个选项。
点击第二个选项运行试试,这次终端显示内容如下,当然是可以了:
PS E:\programs\cpp> & 'c:\Users\boulevard\.vscode\extensions\ms-vscode.cpptools-1.10.5-win32-x64\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-leycryws.22j' '--stdout=Microsoft-MIEngine-Out-v4buybgl.34l' '--stderr=Microsoft-MIEngine-Error-en3h4405.r4h' '--pid=Microsoft-MIEngine-Pid-uln2eguw.ka5' '--dbgExe=D:\MinGW\bin\gdb.exe' '--interpreter=mi'