在构建工程和调试过程当中,按照传统方式(Windows下开发,Linux服务器端编译和运行),须要本地修改代码后,同步至服务器端进行编译并运行。这不免会带来一些麻烦,好比本地修改了却忘了同步或者同步源码文件出错,由此形成调试过程当中一些无用功或者莫名其妙的错误。因此最好的方式是,直接在服务器上修改、编译源码并运行可执行程序(前提是你足够牛X)。若是须要在Windows下进行开发(阅读和修改源码),而在Linux服务器端编译和运行,而且不须要同步源码,那么使用Samba能够达到相同的效果。linux
本文适用于C/C++,对Java可能须要作适当调整,但搭建Samba服务器过程同样。ios
Samba是一个能让Linux与Windows互通和共享的软件,很是实用。组成Samba运行的有两个服务,一个是SMB,另外一个是NMB。前者必需,后者可选。vim
SMB是Samba 的核心启动服务,主要负责创建 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问。服务器
NMB服务是负责解析用的,把Linux系统共享的工做组名称与其IP对应起来,相似DNS。网络
安装Samba能够在线源安装或者软件包安装。CentOS在线源安装命令以下:spa
$sudo yum install samba调试
安装好以后,查看一下samba组件,如在CentOS中查看:rest
$ rpm -qa | grep sambaserver
samba-winbind-3.6.9-164.el6.x86_64ci
samba4-libs-4.0.0-58.el6.rc4.x86_64
samba-winbind-clients-3.6.9-164.el6.x86_64
samba-3.6.9-164.el6.x86_64
samba-common-3.6.9-164.el6.x86_64
打开samba配置文件,以下,并修改。
$ sudo vim /etc/samba/smb.conf
workgroup = WORKGROUP
server string = Samba Server Version %v
; netbios name = MYSERVER
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
; hosts allow = 127. 192.168.12. 192.168.13 //该行注释表示容许全部
# ----------------------- Standalone Server Options ------------------------
…… ……
security = user
#============================ Share Definitions ==============================
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S //表示容许所示有用户
create mode = 0664
directory mode = 0775
//红色表示新增配置
[omee-sms]
comment = some path
path = /home/omee-sms
browseable = no
guest ok = no
writable = yes
valid users = %S //表示容许所示有用户
在samba配置中增长用户和密码
$ smbpasswd -a omee-sms
根据提示输入密码,即完成
$sudo /etc/init.d/smb start
$sudo /etc/init.d/nmb start
如需重启samba,命令以下
$sudo /etc/init.d/smb restart
$sudo /etc/init.d/nmb restart
注意访问路径不包含home
创建工程
打开Source Insight,新建工程Project->New Project,出现选择框以下图所示。点击Browse选择刚才映射的网络硬盘(即远程访问路径),点击肯定便可。
接着就能够在工程中添加源码了。在此再也不累述。
修改源码后,因源码存于远程服务器,因此直接在服务器上编译并运行便可,无需任何拷贝。
另,为了确保samba能被访问,还需检查:
a、确保linux下防火墙关闭或者是开放共享目录权限
b、确保samba服务器配置文件smb.conf设置没有问题,可网上查阅资料看配置办法
c、确保setlinux关闭,能够用setenforce 0命令执行。 默认的,SELinux禁止网络上对Samba服务器上的共享目录进行写操做,即便你在smb.conf中容许了这项操做。 /usr/bin/setenforce 修改SELinux的实时运行模式
setenforce 1 设置SELinux 成为enforcing模式
setenforce 0 设置SELinux 成为permissive模式
若是要完全禁用SELinux 须要在/etc/sysconfig/selinux中设置参数selinux=0 ,或者在/etc/grub.conf中添加这个参数
/usr/bin/setstatus -v