Visual Studio 2017开发Linux C++ / vscode 远程 Linux 开发

网上有很多相关文章,但是不是很全面或者很清楚,所以这里我总结一下;

一:开发环境:

Windows 7 + VM(LinuxMint(Ubuntu)16.04) + Visual Studio 2017;

1:安装VS2017,要勾选“使用C++的Linux开发”工具集;(网上比较多相关文章)

2:在LinuxMint中安装gcc,gdb等工具:

https://learn.microsoft.com/zh-cn/cpp/linux/download-install-and-setup-the-linux-development-workload?view=msvc-170

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

sudo apt-get install openssh-server g++ gdb make ninja-build rsync zip
sudo apt-get install build-essential
sudo apt-get install build-essential gdb
sudo apt-get install cmake

sudo apt-get install git

sudo apt-get install nasm
sudo apt-get install yasm

  1. 在 Linux 系统上,安装并启动 OpenSSH 服务器:

    Bash复制

    sudo apt install openssh-server
    sudo service ssh start
    
  2. 若要让 SSH 服务器在系统启动时自动启动,请使用 systemctl 启用它:

    Bash复制

    sudo systemctl enable ssh

ssh-server配置文件:/etc/ssh/sshd_config;

默认端口是22

更多细节,可以直接查看:在 Visual Studio 中配置 Linux MSBuild C++ 项目 | Microsoft Learn

通过 Linux 命令 : whoami 查看用户名

3:创建VS Linux项目:

     新建项目 - 跨平台 - Linux - 控制台应用程序

添加库文件,可以写绝对路径,也可以直接用工程路径变量代替,如工程目录下有lib文件夹:

$(RemoteRootDir)/lib/test.a

注: 虽然 cmake 也可以简单制作 CMakelist.txt 实现,但是在调试过程中,这个更接近 visual studio,而且效率更高;

添加文件:

添加文件,和win 上的 有些不同:

1:用到的 h 文件,一般程序中 #include 就可以了,这里需要添加到工程中;

2:用到的 .a 文件,和所有相关文件,都需要 add 到工程中;

因为,每次编译,visual studio Linux 会将工程文件复制到 ubuntu 系统中一份;

4:"F5",会填充链接Linux的  主机IP + 用户名 + 密码;

       输入,确定就可以了;

5:编译,运行,默认会在目标机器(Linux上的用户目录下,也会将相关程序文件和目录复制到Linux的~/Project目录中一份,也会编译出相关程序);

注意:虽然代码编写环境是win7,但是,程序中用到的目录,如,环境配置目录,文件读写目录,一定是目标机器Linux的上的路径;

这里,就看编译出一个Linux上的程序了;也可以调试;

二:添加链接调试第三方库:

但是如果想要链接第三方库?

这里示例用FFmpeg库来说明:

和通常的MFC配置环境没有差不多,但是有些不同;

还是要注意,环境是指定是目标机器的环境;

参考:

https://www.cnblogs.com/dongc/p/6599461.html

http://www.linuxidc.com/Linux/2017-03/141704.htm

//

其实用Qt MinGW 或者cmake 也可以上述方式没有环境工程,在Linux再次开发的时候,还需要手写工程配置文件;

或者直接在window上开发,主要跨平台用法,开发完成后再在Linux上简单一直;

或者直接用Qt在Linux开发也可以;

如果用 visual studio code 调试 Ubuntu 上的程序;

就以一般的C++ ,cmake 作为示例:

安装完成 visual studio code后,安装相关模块:

简单的话,直接搜索:C/C++ Extension Pack, (Microsoft),这样就之间安装相关的所有模块了;

然后,然后ssh server;

有两个方法调试程序,

方法一:

当然就是本地直接调试,当然最好的方式,

如果工程文件需要root权限,有两个方式,

1:以管理员权限启动 visual studio code: sudo code --user-data-dir="~/.vscode-root"

2:sudo chmod -R 777 project_dir

我觉得 方法2 比较简单,这样每次就可以只直接启动vscode了,不用上面管理员权限启动;而且远程调试的时候也没有权限限制;

方法二:

如果需要远程调试,

比如在 win10 上安装 visual studio code,那么 ssh 远程调试,有可能会遇到 Ubuntu 中的工程权限问题,不可以修改文件,所以还是需要上述的 方法2 修改工程目录;

如果用 visual studio 2022调试 Ubuntu 上的程序;

这里以 ubuntu 上 FFmpeg 编译调试为例:

环境:win11 + VMware_Ubuntu + 共享文件夹(E:\Vmvolume)

将 FFmpeg 代码 从 Ubuntu 中 git clone 到 共享文件夹:/mnt/hgfs/VMvolume/

这样 可以在 win11上直接调试修改FFmpeg源码,然后 ssh远程命令行,或者直接进入VM再次编译调试同一份代码;

1:获取 FFmpeg 代码

     ubuntu:/mnt/hgfs/VMvolume/ffmpeg$ git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg

2:进入FFmpeg目录,直接简单编译,

      /mnt/hgfs/VMvolume/ffmpeg$ ./configure --prefix=../ffmpeglib

make install 后, 默认 Debug 版本 静态库文件 就到 ffmpeglib 文件夹中了;

3: 在 win11 vs 创建 Linux 控制台程序,就是这个;

4:配置自己的测试工程:

如果是C++:

#include <cstdio>

#ifdef __cplusplus
extern "C"
{
#endif

#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libswscale/swscale.h>
#include <libavutil/imgutils.h>
#include <libavutil/opt.h>
#include <libavutil/mathematics.h>
#include <libavutil/samplefmt.h>

#ifdef __cplusplus
}
#endif


int main1()
{
    return 0;
}

这里简单用 sample 就可以了;

配置 FFmpeg库:

5:配置 ffmpeg 头文件;

Linux 中的头文件 路径,整理直接用ffmpeg源码路径,不是安装路径

配置  静态库文件;

avcodec;avfilter;avformat;avutil;swresample;swscale;pthread

和命令行是一样的;

添加 pthread 这个库文件,系统的直接添加

6:调试:

第一次 into ffmpeg 函数提示 源文件目录 在 虚拟机中的 ffmepg 源码文件路径,但是 在win11 中,直接选择 共享目录 E:\VMvolum\ffmpeg 这个路径中的同样文件,然就可以调试了;

如果修改ffmpeg源码,需要 ubuntu 中重新编译,当然,可以直接在 vs 中的远程命令行中直接运行命令;

vscode 远程 Linux 开发 cmake

Windows vscode + vm_ubuntu

1:首先 vscode 远程 ssh 链接到 ubuntu

2:在 ubuntu 上创建 cmake 工程;

3:在 vscode 中: File -> Add Folder to WorkSpace...

      或者,直接打开文件夹:

4:然后会提示 组要远程安装一些插件,直接安装就可以了;

5:右键 到 CMakelists.txt 就可以看到 Build All Projects;

6:编译,和 调试:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chinabinlang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值