日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

VS远程调试(Visual Studio)远程连接到linux cmake(跨平台开发)(适用于VS2019,且远程目标平台cmake版本大于等于3.8)

發布時間:2025/3/20 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 VS远程调试(Visual Studio)远程连接到linux cmake(跨平台开发)(适用于VS2019,且远程目标平台cmake版本大于等于3.8) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考文章:使用vs2019進行Linux遠程開發

vs進行遠程開發分為三步:
1、創建遠程環境的連接,隨后讓vs將遠程環境中的系統頭文件同步到本地(也可以指定其他地方的頭文件,后面會講解),c++的代碼補全只需要頭文件即可。
2、當代碼寫好后,選擇合適的遠程環境,vs將目標文件和代碼復制到遠程環境的指定位置,接著根據你的配置進行編譯。
3、隨后vs將會在console的gdb或gdbserver中運行你的程序,在此期間你可以充分享受vs debugger帶來的高效和便利。
經過上述步驟之后你就可以在vs里調試自己編寫的跨平臺程序了。

文章目錄

    • 1、在VS安裝 c++ for Linux
    • 2、準備一個可用的Linux遠程環境
    • 3、配置遠程普通項目
    • 4、配置遠程cmake項目
      • 一般步驟
      • VS Cmake遠程開發opencv項目
        • 示例
          • vs_opencv_cmake_remote_test.cpp
          • CMakeLists.txt
          • CMakeSettings.json
          • vs_opencv_cmake_remote_test.h
          • 在vs編譯結果
          • 在ubuntu上運行結果

1、在VS安裝 c++ for Linux

(我修改的時候把嵌入式lot啥的也勾上了,不知道那個干什么用的)

2、準備一個可用的Linux遠程環境

例如配置了靜態IP的Linux虛擬機,并且已經安裝好了GCC工具鏈以及openssh(openssh-server、g++、gdb 和 gdbserver)。(不用多說,這個GCC[G++]工具鏈用apt install安裝就好了,openssh也一樣)

sudo apt-get install openssh-server g++ gdb gdbserver

3、配置遠程普通項目

創建項目選這個:

詳細步驟:
見此:VS(官方)跨平臺開發遠程調試教程

4、配置遠程cmake項目

注意:適用于VS2019,且遠程目標平臺的cmake版本大于等于3.8

安裝高版本cmake見此:linux 下如何升級CMAKE?(安裝指定版本cmake)(高版本cmake)(不刪除之前的,可以用軟連接)

遠程生成遇到的問題及解決辦法及成功案例見此:
VS cmake遠程調試ubuntu項目生成報錯:“Does not match the generator used previously: Ninja“

其他的按照下面幾篇文章指導的步驟操作,基本沒啥問題了

一般步驟

先新建項目,選擇cmake的;

完后點擊這里管理配置,點擊左邊新建:


選擇linux-GCC-Debug:

取個別名:

選擇要遠程的計算機:

修改遠程生成根目錄:

/arnold_test/20220222_vs_remote_test/Arnold_Opencv_Linux-GCC-Debug

點擊最下面高級選項,這倆不知道改不改(貌似不用改,我看了一下,里面只有這些文件而已):


然后ctrl+s保存配置文件,然后切換到.cpp文件,在上面選擇運行項:

然后ctrl+f5運行(當然直接打斷點調試也是可行的):

VS Cmake遠程開發opencv項目

opencv項目貌似還跟上面不太一樣,具體配置可參考:

  • VS cmake遠程調試ubuntu項目生成報錯:“Does not match the generator used previously: Ninja“(刪除.vs隱藏文件夾)
  • VS cmake 遠程開發 opencv報錯:CMake was unable to find a build program corresponding to “Ninja“.(換個構建方式)

主要就是貌似需要把CMake生成器改成Unix Makefiles,還有IntelliSense模式改成linux-gcc-x64

然后還可能會遇到代碼紫色波浪線報錯,解決參考:

  • vs cmake opencv 遠程 ubuntu 開發時:vs代碼出現紫色波浪線且報錯怎么辦?

開發opencv項目,是直接在上面的基礎上,修改CMakeLists.txt
不過前提是在目標機器上已經能編譯運行起來opencv項目哈。。。可參考:Linux ubuntu16.04 安裝opencv4教程(源碼編譯)

示例

vs_opencv_cmake_remote_test.cpp
#include <stdio.h> #include <opencv2/opencv.hpp> using namespace cv; int main(int argc, char** argv) {if (argc != 2){printf("usage: DisplayImage.out <Image_Path>\n");return -1;}Mat image;image = imread(argv[1], 1); //1是以rgb讀取if (!image.data){printf("No image data \n");return -1;}namedWindow("Display Image", WINDOW_AUTOSIZE);imshow("Display Image", image);waitKey(0);return 0; }
CMakeLists.txt
# CMakeList.txt: vs_opencv_cmake_remote_test 的 CMake 項目,在此處包括源代碼并定義 # 項目特定的邏輯。 # cmake_minimum_required (VERSION 3.8)project ("vs_opencv_cmake_remote_test")find_package(OpenCV REQUIRED ) #find_package(OPENCV REQUIRED)# 將源代碼添加到此項目的可執行文件。 add_executable (vs_opencv_cmake_remote_test "vs_opencv_cmake_remote_test.cpp" "vs_opencv_cmake_remote_test.h")# TODO: 如有需要,請添加測試并安裝目標。 target_link_libraries(vs_opencv_cmake_remote_test ${OpenCV_LIBS})#cmake_minimum_required(VERSION 2.8) #project( test ) #find_package( OpenCV REQUIRED ) #add_executable( test test.cpp ) #target_link_libraries( test ${OpenCV_LIBS} )
CMakeSettings.json
{"configurations": [{"name": "x64-Debug","generator": "Ninja","configurationType": "Debug","inheritEnvironments": [ "msvc_x64_x64" ],"buildRoot": "${projectDir}\\out\\build\\${name}","installRoot": "${projectDir}\\out\\install\\${name}","cmakeCommandArgs": "","buildCommandArgs": "","ctestCommandArgs": ""},{"name": "Arnold_Opencv_Linux-GCC-Debug","generator": "Unix Makefiles","configurationType": "Debug","cmakeExecutable": "cmake","remoteCopySourcesExclusionList": [ ".vs", ".git", "out" ],"cmakeCommandArgs": "","buildCommandArgs": "","ctestCommandArgs": "","inheritEnvironments": [ "linux_x64" ],"remoteMachineName": "-596051304;192.168.1.44 (username=arnold, port=22, authentication=Password)","remoteCMakeListsRoot": "$HOME/.vs/${projectDirName}/${workspaceHash}/src","remoteBuildRoot": "/home/arnold/Arnold_test/20220222_Arnold_Opencv_Linux-GCC-Debug","remoteInstallRoot": "$HOME/.vs/${projectDirName}/${workspaceHash}/out/install/${name}","remoteCopySources": true,"rsyncCommandArgs": "-t --delete --delete-excluded","remoteCopyBuildOutput": false,"remoteCopySourcesMethod": "rsync","addressSanitizerEnabled": false,"intelliSenseMode": "linux-gcc-x64","remoteCopyUseCompilerDefaults": true}] }
vs_opencv_cmake_remote_test.h
// vs_opencv_cmake_remote_test.h: 標準系統包含文件的包含文件 // 或項目特定的包含文件。#pragma once#include <iostream>// TODO: 在此處引用程序需要的其他標頭。
在vs編譯結果
開始將文件復制到遠程計算機。 已完成復制文件(運行時間 00h:00m:00s:259ms)cd /home/arnold/Arnold_test/20220222_Arnold_Opencv_Linux-GCC-Debug;/usr/bin/cmake --build /home/arnold/Arnold_test/20220222_Arnold_Opencv_Linux-GCC-Debug --clean-first --config Debug;[ 50%] Building CXX object CMakeFiles/vs_opencv_cmake_remote_test.dir/vs_opencv_cmake_remote_test.cpp.o [100%] Linking CXX executable vs_opencv_cmake_remote_test [100%] Built target vs_opencv_cmake_remote_test全部重新生成 已成功。
在ubuntu上運行結果
./vs_opencv_cmake_remote_test test.jpg

參考文章1:vs2019+cmake實現Linux遠程開發 ★★★★★

參考文章2:VS2019 C++的跨平臺開發——Cmake項目(二)★★★★★

參考文章3:VS2019遠程調試已有cmake項目

總結

以上是生活随笔為你收集整理的VS远程调试(Visual Studio)远程连接到linux cmake(跨平台开发)(适用于VS2019,且远程目标平台cmake版本大于等于3.8)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。