# windows环境下VS code调试GROOPS

2023年3月30日更
之前对vs code以及groops编译流程了解不够深入,现在介绍一种更加适用的groops调试方法。

windows环境下VS code调试GROOPS

1.安装MSYS并配置环境,官网https://www.msys2.org/

打开Mingw64,安装groops需求的包:

工具箱更新、cmake、expat以及线性运算库blas

pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake expat mingw64/mingw-w64-x86_64-openblas

大气库netcdf

pacman -S mingw-w64-x86_64-netcdf

压缩文件库tar

pacman -S tar make

大气相关的erfa库

mkdir -p /c/groops/lib && cd /c/groops/lib
wget https://github.com/liberfa/erfa/releases/download/v1.7.0/erfa-1.7.0.tar.gz
tar -xvf erfa-1.7.0.tar.gz
cd erfa-1.7.0
./configure
make
make install

若还需要编译groopsMPI(并行版本),则需要安装MPI:

官网下载MPI:https://learn.microsoft.com/en-us/message-passing-interface/microsoft-mpi ,将MPI的bin文件添加至系统环境变量。
随后打开mingw64,输入:

pacman -S mingw-w64-x86_64-msmpi

2.安装C++ extention扩展包、Cmake工具箱

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ek1aiEnu-1680224872951)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/e0113963-cad1-4082-a11b-fc676aa61066/Untitled.png)]

3.点击左下角CMake,选择要构建的类型debug,这一步将在source目录下生成包含makefile的build文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eY2yTNp1-1680224872952)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/600b9044-ea55-4c54-b199-3d3569d5f1b3/Untitled.png)]

4.回到groops.cpp,终端→配置默认生成任务→选择g++

此步将会生成一个tasks.json文件,该文件将告诉IDE用什么编译工具生成exe:

"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: g++.exe 生成活动文件",
			"command": "E:\\MSYS2\\mingw64\\bin\\g++.exe",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "编译器: E:\\MSYS2\\mingw64\\bin\\g++.exe"
		}
	]

点击构建,会在当前工作目录的build文件夹下生成可执行程序。

5.运行→添加配置→GDB/GLL

这一步生成launch.json,作用为设置GDB调试器的参数,包括命令行参数,执行程序等:

// 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/groops.exe",
            
            "args": ["F:/GNSS/PPP/04Network.xml"],
            "stopAtEntry": false,
            //"cwd": "${fileDirname}",
            "cwd": "F:/GNSS/PPP",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "E:/MSYS2/mingw64/bin/gdb.exe",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]

6.设置断点,启动调试。
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值