开发环境:vs2017+samba+gdb server
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开发环境:vs2017+samba+gdb server相关的知识,希望对你有一定的参考价值。
距离入职还有两周不到,接老大的任务,先自己学习 Linux 编程。作为一个渣渣,vim 这种编辑器之神完全驾驭不住,还是希望能够使用世界上最好的 IDE —— Visual Studio 继续我的开发工作。好在 VS 最新版本 2017 已经原生支持 Linux 开发,问题就在于如何配置起来。
具体情况是这样的:
- 编写代码的环境是 Windows 10 + Visual Studio 2017 Enterprise (不知道 Community 支不支持)
- 运行代码的环境是使用 VirtualBox 下 CentOS 7 Minimal
实现目标:
- 使用 #include 时能够引入 /usr/include 和 /usr/local/include 的文件,并由此实现 IntelliSense 自动提示
- 自动调用 gcc 编译
- 支持 gdb 调试,包括断点、查看堆栈、查看内存等
1. 安装配置 CentOS
我选用的是 CentOS 7 Minimal 版本,安装很简单,根据提示就好。
有一点要注意,为了能使用 Samba 服务,在 VirtualBox 这个虚拟机的“网络”设置中,要启用两个网卡,网卡1使用 NAT,目的是为了 CentOS 能够连上外网,网卡2使用仅主机(Host-Only)网络,目的是 Windows 能够访问 CentOS。一开始设置 Host-Only 时总是提示未指定网卡(也无法指定),最后发现是 VirtualBox 的桥接驱动没装上,重装 VirtualBox 之后就好了。
系统装好后,需要继续安装和配置需要的组件。
安装 ifconfig 和 vim:
# yum -y install net-tools # yum -y install vim*
安装开发环境:
# yum -y groupinstall development
安装 gdb server 和 samba:
# yum -y install gdb-gdbserver # yum -y install samba samba-client samba-common
接下来配置防火墙,否则 Windows 无法访问 CentOS:
# firewall-cmd –permanent –zone=public –add-service=samba success # firewall-cmd –reload success
配置 samba:
# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak # vim /etc/samba/smb.conf
文件修改为:
[global] workgroup = WORKGROUP # 改为 WORKGROUP,和 Windows 中一致 security = user # 改为 user passdb backend = tdbsam printing = cups printcap name = cups load printers = yes cups options = raw map to guest = bad user # 加上这行,允许匿名访问 [homes] # 不改 [printers] # 不改 [print$] # 不改 # 加上这节 [USR] path = /usr read only = Yes browseable = Yes guest ok = Yes
保存后,启用 samba 并设置开机自启即可:
# systemctl enable smb nmb # systemctl start smb # chkconfig --level 35 smb on
这时候在 Windows 里访问 \\192.168.56.101 (Host-Only 虚拟机的 IP,在 CentOS 里用 ifconfig 可以看到),应该可以看到一个叫做 usr 的目录,对应的就是 CentOS 中的 /usr,只读。
接下来还要配置 SSH:
# vim /etc/ssh/sshd_config
主要是把以下几行开头的井号去掉:
Port 22 AddressFamily any ListenAddress 0.0.0.0 ListenAddress ::
配置一下访问权限:
# vim /etc/hosts.allow
文件末尾加上(10.0.2.2 对应网卡1也就是 NAT,192.168.56.1 对应网卡2也就是 Host-Only):
sshd:10.0.2.2 sshd:192.168.56.1
以及文件:
# vim /etc/hosts.deny
末尾加上:
sshd:All
至此,CentOS 就配置好了。
2. 设置 XShell 和 CentOS 随 Windows 开机自启
下载安装 XShell,测试连接到 192.168.56.101 是否正常,如果正常,用以下命令行可以在启动 XShell 时自动连接:
xshell.exe "Develop-1"
这个“Develop-1”是 XShell 中的一个会话名称。
另外我还想在启动 Windows 时自动启动 CentOS 这个虚拟机,但是并不希望显示窗口,所以可以创建一个 BAT 文件并放置到 开始 > 启动 中:
@"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "7b71133c-5326-4c8e-b609-16b9cb23b91e" --type headless
注意,一个是 VirtualBox 的安装目录,一个是虚拟机的 UUID。
3. 设置 Visual Studio 2017
首先在安装 VS2017 时,一定要勾选“使用 C++ 的 Linux 开发”。
安装好后,可以创建一个工程测试,具体是“跨平台 > Linux > 空项目(Linux)”。
注意设置项目属性中的“VC++ 目录 > 包含目录”,设置为“\\192.168.56.101\usr\include;\\192.168.56.101\usr\local\include”。嫌麻烦的话,可以对 \\192.168.56.10\usr 进行驱动器映射。
最后,创建 .c 文件,编译调试。首次调试时需要设置 Linux 主机的地址和账户信息,输入 192.168.56.101 和端口 22,账号密码依据情况即可。
一切妥当之后,就可以用 VS 爽快开发调试了~!
以上是关于开发环境:vs2017+samba+gdb server的主要内容,如果未能解决你的问题,请参考以下文章
DevEco tools工具链配置记录:VScode本地配置+ubuntu远程开发环境配置