目标
在Windows环境,VSCode调用C的第三方库函数
VSCode官方配置教程
MSYS2官方下载与安装教程链接
MSYS2
一 、MSYS2官方下载与安装教程链接
注意
1、MSYS2可以安装或提取到计算机的任何位置,但您必须使用仅包含ascii字符且不包含空格的文件夹名称(由于path路径的MAX为260,所以将其放置在使用少量字符的路径中很有意义;C:\msys32或C:\msys64是理想的)。
2、在**$ pacman -Syu**之前,更换包管理器的软件源。默认包管理器的软件源是在国外的(有梯子另说),换国内的速度会比较快: (对源文件进行备份是个好习惯)
编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/i686
编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/x86_64
编辑 /etc/pacman.d/mirrorlist.ucrt64 ,在文件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/ucrt64
编辑 /etc/pacman.d/mirrorlist.clang64 ,在文件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/mingw/clang64
编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加:
Server = https://mirrors.tuna.tsinghua.edu.cn/msys2/msys/$arch
原文链接:https://blog.csdn.net/qq_17728627/article/details/124207407
中国科学技术大学 Linux 用户协会
刷新包管理器pacman -Sy,然后按照教程继续。
如果要安装mingw && gcc
- 运行“MSYS2 MSYS64”
- 使用以下命令更新其余基本软件包:pacman -Su
- 安装一些工具和 mingw-w64 GCC:pacman -S --needed base-devel mingw-w64-x86_64-toolchain
- 验证安装结果:gcc --version
$ pacman -S --needed base-devel mingw-w64-x86_64-toolchain
warning: file-5.39-2 is up to date -- skipping
[... more warnings ...]
:: There are 48 members in group base-devel:
:: Repository msys
1) asciidoc 2) autoconf 3) autoconf2.13 4) autogen
[... more packages listed ...]
Enter a selection (default=all):
:: There are 19 members in group mingw-w64-x86_64-toolchain:
:: Repository mingw64
1) mingw-w64-x86_64-binutils 2) mingw-w64-x86_64-crt-git
[... more packages listed ...]
Enter a selection (default=all):
resolving dependencies...
looking for conflicting packages...
Packages (123) docbook-xml-4.5-2 docbook-xsl-1.79.2-1
[... more packages listed ...]
m4-1.4.18-2 make-4.3-1 man-db-2.9.3-1
mingw-w64-x86_64-binutils-2.35.1-3
mingw-w64-x86_64-crt-git-9.0.0.6090.ad98746a-1
mingw-w64-x86_64-gcc-10.2.0-6
mingw-w64-x86_64-gcc-ada-10.2.0-6
mingw-w64-x86_64-gcc-fortran-10.2.0-6
mingw-w64-x86_64-gcc-libgfortran-10.2.0-6
mingw-w64-x86_64-gcc-libs-10.2.0-6
mingw-w64-x86_64-gcc-objc-10.2.0-6
mingw-w64-x86_64-gdb-10.1-2
mingw-w64-x86_64-gdb-multiarch-10.1-2
[... more packages listed ...]
Total Download Size: 196.15 MiB
Total Installed Size: 1254.96 MiB
:: Proceed with installation? [Y/n]
[... downloading and installation continues ...]
$ gcc --version
gcc.exe (Rev1, Built by MSYS2 project) 12.2.0
Copyright (C) 2022 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
二、pacman包管理
常用命令
安装新包:pacman -S <Package names | Package groups>
删除包:pacman -R <package names | package groups>
搜索包:pacman -Ss <name pattern> && pacman -Sl|grep package-name
更新本地软件包数据库:pacman -S --refresh && pacman -Sy
升级软件包:pacman -S --refresh --sysupgrade && pacman -Syu
列出所有安装软件:pacman -Q --explicit && pacman -Q -e
添加环境变量
将msys安装目录下的\mingw64\bin和\usr\bin添加到windows的系统环境变量中
VSCode配置
1、VSCode安装拓展C/C++ Extension Pack。同时将settings.json中的配置恢复默认状态,(清空settings.json即可),届时settings.json会自动配置好的![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/580f13723b71a1a01f6667ccda99d8b1.png)
2、修改c_cpp_properties.json c_cpp_properties.json文件设置方案
Crtl+Shift+P找到Edit Configurations。在包含路径中添加 msys安装路径\mingw64\include/。添加后的c_cpp_properties.json应发生变化,includePath中会自动新增"C:\msys64\mingw64\include/"
编译器路径:扩展使用包含路径设置来设置C++标准库头文件的路径。当扩展知道在哪里可以找到这些文件时,它可以提供智能完成和转到定义导航等功能。
C/C++扩展会尝试根据它在系统上找到的内容填充默认编译器位置。该扩展在几个常见的编译器位置中查找。编译器的搜索路径:
首先检查 Microsoft Visual C++ 编译器
然后在 Windows Subsystem for Linux (WSL)上查找 g++
再然后是 g++ for Mingw-w64。
如果安装了 Visual Studio 或 WSL,则可能需要进行更改以匹配项目的首选编译器。
3、修改tasks.json
修改.vscode下的tasks.json,以下图为例:
我需要调用gmp、openssl/bn的库函数。因此添加
gmp: “-l”, “gmp”,
openssl: “-l”, “ssl”, “-l”, “crypto”
"-I",
"C:\\gmp", //改成你的gmp.h所在文件夹的路径(一般是在gmp文件夹里)
"-L",
"C:\\gmp\\.libs",//改成你的libgmp.a静态库所在文件夹的路径(一般在gmp的.libs里)
"-l",
"gmp"//表示libgmp.a(gmp静态库)
原文链接:https://blog.csdn.net/qq_43094622/article/details/105733133
4、运行成功![运行成功](https://i-blog.csdnimg.cn/blog_migrate/65641e25199d26bedf7e226c11b9333c.png)
参考链接
https://blog.csdn.net/qq_17728627/article/details/124207407