Visual Studio add linux Project

Posted YZFHKMS

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio add linux Project相关的知识,希望对你有一定的参考价值。

 

//https://blog.csdn.net/lanxiaziyi/article/details/81508499

 

 

 

 

 

 

 

 

 

 

{

使用vs2017进行linux下的开发
现在 加点注意事项:
1,依赖的库,都要在vs的配置文件中置指定好。
例如:
-levent -lpthread -L/root/freeswitch/libs/esl/.libs

1
在 属性页->配置属性->链接器->命令行->其他选项 中添加。
还可以在 属性页->配置属性->链接器->输入->库依赖项 中添加。
2

为了能方便的使用代码提示。需要将你使用的头文件从 linux中下载到 windows下。
同样要指定搜索路径(这是linux的搜索路径)
-I /root/freeswitch/libs/esl/src/include


1
指定vs代码提示的搜索路径是
属性页->配置属性->c/c++->常规->附加包含目录 。

 

}

 

{

 

开发环境

window 10操作系统,vs 2017 community版,VMware12.5.7

在VMware中安装ubuntu14桌面版

vs 2017的安装

官网下载地址https://visualstudio.microsoft.com/zh-hans/?rr=https%3A%2F%2Fwww.microsoft.com%2Fzh-cn%2F

从官网下载最新的vs 2017,在安装的过程中需要注意,如果你需要搭建linux c++环境,需要勾选“使用c++的linux开发”工具集,见下图

配置ubuntu环境

在ubuntu中安装好c++环境,因为vs 2017需要通过ssh登陆ubuntu系统,所以也需要安装好ssh服务,命令如下:

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

开始ssh服务:

sudo service ssh start

vs2017创建linux项目

打开vs2017,步骤如下,文件-->新建项目-->跨平台-->linux->控制台应用程序(linux)

新建完成项目之后,vs2017自动生成一个简单的maic.cpp文件

菜单栏选择 调试->cross platform->add 将刚才建立的Ubuntu服务器用户信息输入进去

右键解决方案,可以看到当前程序的属性页面,点击配置属性->常规->远程生成计算机,选择刚刚新建的账户,可以看到,在该页面下,默认的远程生成根目录在"~/projects"下面,待会儿可以看到在ubuntu对应的目录下会生成项目的代码。

菜单栏选择调试->Linux Console打开linux程序的控制台

可以在程序中打断点,点击调试按钮进行运行,可以看到控制台打印出信息

登陆ubuntu,在~/projects目录下面可以看到新生成的项目文件夹“test”

遇到问题

上述是一个简单的开发演示,在实际的工作中,代码可能很复杂。因为这几天在学习linux的IO多路复用机制,从网上找了一个稍微复杂的通信程序,代码来自于博客https://www.cnblogs.com/Anker/p/3261006.html,源代码有一处错误,需加上#include <arpa/inet.h>。这个程序的功能是客户端向服务器发送信息,服务器接收输出并原样发送回给客户端,客户端接收到输出到终端。其中使用一些linux中的库文件。

问题1 无法找到库文件

在博客https://www.cnblogs.com/xylc/p/6533716.html?&from=androidqq 看到一个解决方法,将ubuntu下面/usr/include、/usr/local/include等目录复制到vs的linux header path(在我的机器中,地址为C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\Common7\\IDE\\VC\\Linux\\include\\usr)。

问题2 gdbserver模式无法使用

vs2017进行调试有两种方式,gdb和gdb-server,可以在菜单栏 调试->配置属性->调试->调试模式中进行配置,关于这两种模式的不同,官方文档的解释如下:

  • 在“gdbserver”模式中,GDB 在本地运行,连接到在远程系统上运行的 gdbserver。 请注意,这是 Linux 控制台窗口唯一支持的模式。
  • 在“gdb”模式中,Visual Studio 调试器驱动远程系统上的 GDB,如果 GDB 的本地版本与目标计算机上安装的版本不兼容,则远程系统上的 GDB 更易兼容。 |

从网上找了很多的资料,重新更新了ubuntu中的gdbserver,结果还是不行,因为我之前使用的是ubuntu17的server版本,无奈使用ubuntu14的桌面版,问题立马得到解决,目前仍然不知道gdbserver模型为什么无法使用,如果有路过的大神看到,希望评论区可以留言。

问题3 错误Stopped (tty input)

在运行gdb模式下运 行客户端的时候,客户端从控制台接受数据的那一段代码报Stopped (tty input)错误,通过看官方文档发现gdb模式不支持控制台交互,改成gdbserver模式后能正常使用。

最终运行结果

最终成功运行服务端和客户端程序,先启动服务端,再运行客户端,下图中分别为服务端和客户端运行情况。当客户端再控制台输入信息,服务端能接收,并回传给客户端在控制台显示。

参考资料

部署、运行和调试 Linux 项目
使用Visual Studio 2017作为Linux C++开发工具

作者:yearsj
转载请注明出处:https://www.cnblogs.com/yearsj/p/9600682.html
segmentfault对应博文:https://segmentfault.com/a/1190000016300215

}

 

以上是关于Visual Studio add linux Project的主要内容,如果未能解决你的问题,请参考以下文章

像在 Visual Studio 中一样在 Eclipse 中自动完成

如何扩展 Visual Studio 编辑器

如何在Visual Studio Code 中运行 Python

如何使用 Excel Add In Project 的签名证书创建 Visual Studio 设置项目

在visual Studio Code中使用Nuget Package Manager:Add Package添加引用失败?

Mercurial Add On for Visual Studio不显示1个特定项目的图标