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.pswp.cn/diannao/76112.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/76112.shtml
英文地址,請注明出處:http://en.pswp.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、應用程序接收授權碼…