在構建工程和調試過程當中,按照傳統方式(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