1.sudo
apt-get
install
build-essential 更新 配置源
sudo apt install gcc-8
2.
3.sudo apt install g++-8
cd /usr/bin ln -s gcc-4.8 gcc ln -s g++-4.8 g++ ln -s gcc-4.8 cc ln -s g++-4.8 c++
可能需要root權限。可以sudo su root獲取root權限。
一次安裝基礎包:
apt install python automake libtool flex texinfo libcppunit-dev make libncurses5-dev zlib1g-dev binutils-dev libssl-dev -y
為什么要在windows下編譯Linux項目?
我們是做后台開發的,雖然我們的svr都泡在tlinux上,但是大部分同學寫代碼/看代碼還都是在windows下,使用類似於Clion、visual studio、source insight等編輯器(可以方便的跳轉),只有真正需要編譯的時候才去編譯機上進行編譯。這樣就有一個問題:當帶有有編譯錯誤時,需要在windows上改一下再通過rz或者ftp工具傳過去再進行編譯,效率不高。如果可以在windows上編譯,就只用在編譯完成進行一次svn提交即可,需要運行的時候再去編譯機編譯運行。而且編譯完成后對於那些存在於tar包里面代碼也可以做到跳轉,寫代碼看代碼也比較方便。
當然還有一個原因是組內有使用mac的同學做了在mac下的編譯,心想windows不能沒人管啊,於是就研究了下在windows下的編譯。
什么是WSL?
Windows Subsystem for Linux(簡稱WSL)是一個為在Windows 10上能夠原生運行Linux二進制可執行文件(ELF格式)的兼容層。它是由微軟與Canonical公司合作開發,目標是使純正的Ubuntu 14.04 "Trusty Tahr"映像能下載和解壓到用戶的本地計算機,並且映像內的工具和實用工具能在此子系統上原生運行。發展到現在不止支持Ubuntu,還有OpenSuse、SUSE Linux Enterprise Svr、Debian、Kali等操作系統。
如何開啟WSL?
本文以Ubuntu為例,展示如何在WIN10下開啟WSL。本文所說的都是在開發網下面進行的操作,所以需要申請臨時訪問外網權限。
1, 在服務里面將WIN10的自動更新服務打開,並把win10更新到最新版本。可以在https://www.microsoft.com/zh-cn/software-download/windows10下載最新的升級器進行快速升級。
2,打開開發者模式:開始菜單 =>windows設置=>更新和安全=>針對開發人員=>開發人員模式
3,安裝WSL組件:控制面板=>程序和功能=>啟用或關閉windows功能=>在“適用於Linux的Windows子系統”前面打鈎,確定后重啟系統
4,去應用商店下載Ubuntu:開始菜單 =>打開windows store=>搜索linux=>在windows運行linux?是的=>獲取這些應用=>選擇ubuntu進行下載,下載完成后自動安裝。注意:由於我們公司網絡策略,這塊如果有相關問題要等好久,我就是因為不明網絡原因重裝了一次win10才解決,后面下載也經常遇到各種問題,比如速度慢、彈出錯誤等,不行就重啟,殺后台進程,多試幾次應該都可以的。
這些都完成后,你的開始菜單里面應該有了ubuntu的圖標,點擊進去進行安裝即可,第一次會要求輸入用戶名和密碼。
后續開啟ubuntu子系統可以在cmd里面輸入bash或者ubuntu即可,也可以選擇開始菜單里面的ubuntu圖標。開啟后就是個標准的linux程序了,可以看到系統的 C D E等盤都被掛載到了/mnt下面。
如何編譯代碼?
apt update
1,設置源和代理,修改系統配置
- WSL默認帶的包很少,編譯需要的東西很多都要自己安裝。ubuntu下面安裝使用apt工具,需要設置相關源,這個網上找下相關教程即可,不再贅述。
2,下載安裝相關的組件:
不同的項目需要的編譯工具,以我們項目為例:
- 我們需要gcc4.8,所以:
sudp apt install gcc-4.8
sudp apt install g++-4.8
再做一下軟鏈接:
cd /usr/bin ln -s gcc-4.8 gcc ln -s g++-4.8 g++ ln -s gcc-4.8 cc ln -s g++-4.8 c++
可能需要root權限。可以sudo su root獲取root權限。
一次安裝基礎包:
apt install python automake libtool flex texinfo libcppunit-dev make libncurses5-dev zlib1g-dev binutils-dev libssl-dev -y
- cmake需要升級到3.9以上,去https://cmake.org/download/下載3.9版本,解壓后 ./bootstrap && make && make install
- uuid項目需要automake1.13版本,protobuf需要1.14版本的automake,apt上install的automake是1.15版本的,所以還需要去http://ftp.gnu.org/gnu/automake/下載對應的版本,./configure && make && make install
- mysync需要bison使用2.7版本,3.0以上的版本mysql-5-1-16會報錯,去http://ftp.gnu.org/gnu/bison/下載2.7版本安裝包,然后./configure,make, make install即可。有可能會報找不到bison的錯誤,使用命令:find . -type f | xargs touch -t `date +%Y%m%d%H%M`
- 你可以像在linux下面編譯你的代碼了。哦不,本來就是在linux下面,哈哈。
其他一些tips
- clion最新的編譯器才支持WSL,需要去官網下載最新的。
- clion的WSL是通過ssh連接到ubuntu的,同理你也可以自己用ssh工具(比如putty、secureCRT等)連接到ubuntu,這里給一個ubuntu下面開啟sshd的方法,參考:https://hbaaron.github.io/blog_2017/%E5%9C%A8wsl%E4%B8%8B%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8sshd%E5%85%A8%E6%94%BB%E7%95%A5/
- 代碼可以通過svn checkout到D E盤等,編譯的時候如果需要用到 / 目錄之類的,可以通過軟鏈接實現
最后,希望大家在windows上碼的愉快~~~