VS Code C/C++项目设置launch.json中的environment参数解决支持库路径问题

问题描述

Windows 11 VS Code C/C++ 开发环境搭建分别写了ccpp两个示例代码,在运行过程中c代码没有发现问题(可能简单,没有用到太多支持),但使用了stlcpp代码并没有运行出来,如下图:
问题描述
出问题的代码如下:

// hello.cpp
#include <iostream>
#include <vector>
#include <string>int main() {std::vector<std::string> msg {"Hello", "C++", "World", "from", "VS Code", "and", "MinGW-w64!"};for (const std::string& word : msg) {std::cout << word << " ";}std::cout << std::endl;std::cout << "GCC version: " << __VERSION__ << std::endl; // 输出 GCC 版本return 0;
}

问题分析

程序没有问题,但跑不出结果,这应该是引用的库没有正确指向导致,考虑这是一个MinGW程序,且这个MinGW我并没有在环境变量中“全局”设置,那么可以判断是“丢引用”了。

问题解决

1. 静态编译

在编译命令中加上-static关键字,把编译后的可执行代码静态化,包含了相关运行库,问题得以解决(当然,这么干文件包会变大)。

2. 修改launch.json文件

修改launch.json文件的environment参数,把相关环境变量加进去。

            "environment": [{"name": "PATH","value": "D:/tools/mingw64/bin;${env:PATH}"}],

问题得到解决:
在这里插入图片描述

environment参数解释

  1. environment 数组: 这是定义环境变量的地方。
  2. 对象结构: 每个对象包含 "name" (环境变量名) 和 "value" (环境变量值)。
  3. 修改 PATH:
    • 我们定义了一个名为 "PATH" 的环境变量。
    • 它的值由三部分组成:
      • "C:/path/to/your/libs/bin": 你的第一个自定义目录路径 (使用正斜杠或双反斜杠)。
      • "D:/another/dependency/bin": 你的第二个自定义目录路径。
      • ;: Windows 上的路径分隔符。
      • ${env:PATH}: VS Code 的变量替换,它会在启动时获取当前环境的 PATH 值。
    • 通过将你的目录放在 ${env:PATH} 之前并用分号分隔,你实际上是将这些目录预置 (prepend) 到了运行时环境的 PATH 中。这通常是推荐的做法,特别是对于加载 DLL,因为它确保你的库优先于系统或其他地方可能存在的同名库被找到。
  4. 路径分隔符:
    • Windows 上,使用分号 (;) 作为 PATH 中不同目录的分隔符。
    • Linux/macOS 上,使用冒号 (:) 作为分隔符。如果你需要跨平台兼容,可以利用 launch.json 中的平台特定配置部分("windows": {}, "linux": {}, "osx": {})。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/76112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言pthread库的互斥锁使用案例

一、函数约定 1、初始化锁 int pthread_mutex_init(pthread_mutex_t* m, const pthread_mutexattr_t* attr) 2、加锁 int pthread_mutex_lock(pthread_mutex_t* m); 3、解锁 int pthread_mutex_unlock(pthread_mutex_t* m); 4、销毁 int pthread_mutex_de…

随机2级域名引导页HTML源码

源码介绍 随机2级域名引导页HTML源码,每次点进去都随机一个域名前缀。 修改跳转域名在 350 行代码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行 效果预览 源码免费获取 随机2级域名引导页…

NQA 网络质量分析协议

协议信息 网络质量分析协议&#xff0c;支持 icmp 等协议测试 配置实现 华为 创建 ICMP 测试实例 NQA 与静态路由联动 ​ip route-static 10.1.1.0 24 10.1.2.1 track nqa admin test1​​

Nginx — nginx.pid打开失败及失效的解决方案

1、场景一&#xff1a;nginx.pid文件或者目录不存在 1.1、报错详情 [rootmaster conf]# ../sbin/nginx -s reload nginx: [error] open() "/var/run/nginx/nginx.pid" failed (2: No such file or directory) #nginx.pid文件或目录不存在。 原因&#xff1a; 1、文件…

Gitee批量删除仓库

Gitee批量删除仓库 文章目录 Gitee批量删除仓库生成一个GiteeToken通过Python调用Gitee API参考文档 生成一个GiteeToken 右上角下拉->设置->安全设置->私人令牌->生成新令牌&#xff0c;注意将令牌保存&#xff08;只会出现一次&#xff09; 通过Python调用Gite…

AireOS WLC安装License报错

1.概述 本文主要记录在AireOS的WLC上安装License错误的情况。License的类型也是传统的License&#xff0c;因为设备的型号已经EOL&#xff0c;相关的资料应该较少&#xff0c;这里进行可能问题的记录。 2.适用场景 型号&#xff1a;WLC2500&#xff0c;WLC5508 License类型…

利用 Excel 函数随机抽取(附示例)

RANDARRAY 是 Excel 365 和 Excel 2021 引入的一个函数&#xff0c;用于生成一个随机数数组。它的语法如下&#xff1a; RANDARRAY([rows], [columns], [min], [max], [whole_number])参数详解 rows&#xff08;可选&#xff09; 要生成的行数&#xff08;默认值为 1&#xff…

Python:爬虫概念与分类

网络请求&#xff1a; https://www.baidu.com url——统一资源定位符 请求过程&#xff1a; 客户端&#xff0c;指web浏览器向服务器发送请求 请求&#xff1a;请求网址(request url)&#xff1b;请求方法(request methods)&#xff1b;请求头(request header)&…

【今日半导体行业分析】2025年3月30日

今日探针卡行业分析&#xff1a;把握机遇&#xff0c;应对挑战 一、引言 在半导体产业的精密制造流程中&#xff0c;探针卡作为晶圆测试环节的核心设备&#xff0c;犹如一颗精密的 “心脏”&#xff0c;承担着芯片封装前电学性能测试与筛选的重任。其性能的优劣直接关系到芯片…

HO与OH差异之Navigation三

在上一篇内容中我们介绍了HO与OH差异之Navigator&#xff0c;我们也了解了Navigator的基本概念和大致了解了一下他的基础用法&#xff0c;既然谈到差异肯定就不止这两种差异&#xff0c;今天就让我们来了解第三种差异NavRouter&#xff0c;其中在HO中我们并没有这种路由方式但是…

Java 程序员面试题:从基础到高阶的深度解析

引言 Java 作为全球最流行的编程语言之一&#xff0c;其面试题不仅考察候选人的编程能力&#xff0c;更关注对底层原理和架构设计的理解。本文将系统梳理 Java 面试中的高频考点&#xff0c;结合代码示例与原理分析&#xff0c;助您从容应对技术面试。 一、Java 基础语法与核…

Python操作Excel文件的11种方法

Python操作Excel文件的11种方法 pandas&#xff1a;功能强大&#xff0c;支持数据清洗、转换和分析&#xff0c;适用于数据分析和处理任务。 openpyxl&#xff1a;专注于 .xlsx 文件格式&#xff0c;提供细粒度的操作&#xff0c;适用于需要对 Excel 文件进行细粒度操作的场景…

ZGC初步了解

ZGC ZGC和G1&#xff0c;CMS一样都是一种垃圾回收器。那其实G1已经很不错了 为什么还需要ZGC呢 ZGC&#xff08;The Z Garbage Collector&#xff09;是JDK 11中推出的一款低延迟垃圾回收器&#xff0c;它的设计目标包括&#xff1a; 停顿时间不超过10ms&#xff1b; 停顿时…

Tof 深度相机原理

深度相机(TOF)的工作原理_tof相机原理-CSDN博客 深度剖析 ToF 技术&#xff1a;原理、优劣、数据纠错与工业应用全解析_tof技术-CSDN博客 飞行时间技术TOF_tof计算公式-CSDN博客 深度相机&#xff08;二&#xff09;——飞行时间&#xff08;TOF&#xff09;_飞行时间技术-C…

c++-函数增强

一、编译器对函数名的处理 1. C与C的差异 C编译器&#xff1a;保留原始函数名&#xff0c;无额外处理。例如&#xff1a; int add(int a, int b) { return a b; } 在汇编代码中仍为add。 C编译器&#xff1a;通过name mangling&#xff08;名称修饰&#xff09;生成唯一函数…

跟着StatQuest学知识08-RNN与LSTM

一、RNN &#xff08;一&#xff09;简介 整个过程权重和偏置共享。 &#xff08;二&#xff09;梯度爆炸问题 在这个例子中w2大于1&#xff0c;会出现梯度爆炸问题。 当我们循环的次数越来越多的时候&#xff0c;这个巨大的数字会进入某些梯度&#xff0c;步长就会大幅增加&…

HarmonyOS 之 @Require 装饰器自学指南

在 HarmonyOS 应用开发工作中&#xff0c;我频繁碰到组件初始化传参校验的难题。在复杂的组件嵌套里&#xff0c;要是无法确保必要参数在构造时准确传入&#xff0c;就极易引发运行时错误&#xff0c;而且排查起来费时费力。一次偶然的机会&#xff0c;我接触到了 Require 装饰…

CDN节点对网络安全扫描的影响:挑战与应对策略

引言 在当今互联网环境中&#xff0c;内容分发网络(CDN)已成为提升网站性能和用户体验的关键技术。然而&#xff0c;CDN的广泛应用也为网络安全扫描带来了新的挑战。本文将深入探讨CDN节点如何影响各类安全扫描工作&#xff0c;分析由此产生的安全风险&#xff0c;并提供有效的…

【Git多分支使用教程】

Git多分支使用教程 Git多分支使用手册目录多分支只拉取一个多分支拉取指定几个步骤 1&#xff1a;克隆第一个分支步骤 2&#xff1a;获取其他分支 常见问题与解决方法1. 错误&#xff1a;origin/分支名 is not a commit2. 分支名称冲突3. --single-branch 限制 总结 Git多分支使…

【身份安全】OAuth 2.0工作原理(一)

目录 OAuth 授权框架一、OAuth 角色二、协议流程三、应用注册&#xff08;Application Registration&#xff09;用户 ID&#xff08;Client ID&#xff09; 和 用户密码&#xff08;Client Secret&#xff09; 四、权限授予1、授权码链接2、用户授权申请3、应用程序接收授权码…