一. 哪些项目模板可以选择
使用visual studio进行远程开发Linux项目,有两种比较易用的方式,一是只适用于Linux系统的项目,二是跨平台的c++项目。
二. 只适用于Linux系统的c++项目
此种方式比较简单,我们使用此种方式无非就是看重了visual studio的强大的调试功能。 步骤如下:
- 创建新项目
模板一定要选择平台为Linux,此处我们选择空项目。 - 配置远程服务器
工具->选项->跨平台->连接管理器->添加 - 配置属性
配置远程生成目录 - 断点调试
接下来就可以愉快的在vs加入断点进行调试。 可以看到远程Linux服务器上也会运行相应的进程及gdb进程。 如果是大型多线程项目,未曾使用,不知是否有坑!
三. 跨平台的c++项目(cmake)
使用cmake进行项目构建,而不是依赖于微软的sln进行构建。可以在本地windows和远程Linux都能进行调试,做跨平台的开发,非常的方便。前提是要会使用cmake~~。这里有一篇不错的CMake教程 《CMake教程》 步骤如下:
- 创建新项目
选择CMake项目 ,此种项目不会再生成.sln 或者.vcxproj 。 - 管理配置
配置->管理配置,点击后会打开CMakePresets.json 文件。 其中的Linux-debug项,是与我们的远程调试相关的属性配置。 示例如下
{
"name": "linux-debug", #会在调试框中显现的名称
"displayName": "Linux Debug",
"generator": "Unix Makefiles",
"binaryDir": "${sourceDir}/out/build/${presetName}",
"installDir": "${sourceDir}/out/install/${presetName}",
"cmakeExecutable": "/usr/bin/cmake", #填写远程的CMake路径
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
},
"condition": {
"type": "equals",
"lhs": "${hostSystemName}",
"rhs": "Linux"
},
"vendor": {
"microsoft.com/VisualStudioRemoteSettings/CMake/1.0": {
//"sourceDir": "$env{HOME}/.vs/$ms{projectDirName}"
"sourceDir": "/var/tmp" #本机代码复制到远程的目录 如果不设置默认用上一行的路径,也就似乎 ${HOME}下的.vs目录,此例中是改为了/var/tmp目录
}
}
- 远程运行
编写代码判断平台类型,引入不同的头文件,运行不同的函数,以达到进程休眠的效果。 windows平台可以使用windosw.h中的Sleep函数; linux平台可以使用unistd.h中的sleep函数。 也可以使用c++11 中的休眠函数,以达到跨平台的效果,省去平台的判断。 《C++跨平台通过宏定义判断当前操作系统windows,linux和编译器》 - 本地执行
本地执行自是无需多言。 本地项目也是通过cmake进行构建。 cmake的掌握是关键。
|