一、簡介
本文主要介紹在Windows平臺上使用VSCode,從而可以一鍵編譯出執行在Linux-x86_64環境中的程式或庫。
二、實現方式
① 交叉編譯
② WSL(Windows Subsystem for Linux)
三、交叉編譯
關於交叉編譯的配置,我之前一篇部落格裡面已經非常詳細地列舉了步驟,只不過之前用的交叉編譯工具鏈是Linux-Arm環境的,今天是Linux-x86_64的,步驟上其實一模一樣,不同之處就是用的交叉編譯工具鏈不一樣。
之前的交叉編譯教程部落格連結: https://www.cnblogs.com/Clark-Zhang/p/16303434.html
linux-x86_64交叉編譯工具鏈下載地址: https://pan.baidu.com/s/1gXCe9VzzvGAcdcfiYNG3hw?pwd=4h3u 提取碼:4h3u
下載完後解壓會得到一個資料夾,裡面包含gcc-9.3.0資料夾和ubuntu-x64.cmake檔案,把這兩個東西與之前配置linux-arm時所用的gcc-7.5資料夾以及arm.cmake放在同一目錄即可,然後按照教程步驟一步步來即可,linux-arm便用arm.cmake,linux-x86_64便用ubuntu-x64.cmake。
配置完後就能夠點選build一鍵變異出執行在Linux-x86_64環境中的程式了(需要系統最低ubuntu-20.04)。
經過我的測試,正常編譯C++程式是沒什麼問題的,但是如果程式呼叫了其他x86系統上編譯的庫,cmakelist.txt中可能需要加上add_compile_options(-fno-stack-protector),就在一開始加就行,否則編譯會不通過。
綜上,我感覺交叉編譯勉強能用,但是卻又感覺有那麼一點瑕疵,所以我推薦用WSL的方式,配合VScode相當於本機編譯了,沒用過的人可能會覺得裝個linux系統好麻煩,不想用,但是相信我,我也是個怕麻煩的人,我覺得好用的,那說明操作十分傻瓜化,使用者體驗很好。下面就開始介紹WSL方式。
四、WSL(根據官方文件,必須執行 Windows 10 版本 2004 及更高版本(內部版本 19041 及更高版本)或 Windows 11)
1. 安裝wsl
1.1 自動安裝
開啟命令列輸入wsl --install,自動安裝,然後重啟電腦。(我用的不是這種方法,下面我會介紹手動安裝,其實也沒幾步)
1.2 手動安裝
① win+i 鍵,在彈出的設定介面中點選更新和安全
② 點選左邊列表中的開發者選項,將開發人員模式開啟,預設是關的
③ 返回設定主頁面,點選應用
④ 點選可選功能
⑤ 進去後拉到最下面,點選更多windows功能
⑥ 在彈出的視窗中拉到最下面,將圖中所示勾選上。
⑦ 開啟微軟應用商店
⑧ 輸入ubuntu進行搜尋
⑨ 選擇你想要的安裝的ubuntu版本,我裝的是20.04.4
⑩ 安裝時會讓你設定使用者名稱和密碼,隨便起。大概幾分鐘就能裝好
2. 配置環境
以上步驟已經將linux系統裝好了,但是想要編譯程式還需要安裝cmake以及gcc
以下命令都是在wsl命令列中輸入
2.1 sudo apt-get update (更新環境,需要等一會)
2.2 sudo apt-get install g++(安裝編譯所需環境)
2.3 sudo apt install cmake (安裝cmake)
3. 使用vscode
3.1 vscode新建一個視窗
3.2 安裝遠端外掛
3.3 點選vscode左下角綠色圖示
3.4 選擇圖中所示這個,然後vscode能夠直接連線到wsl,十分便捷!
連線成功會顯示下圖這個
3.5 然後選擇開啟資料夾,開啟需要編譯的專案,支援直接訪問windows盤上面的資料夾,目錄在/mnt, 下面就是各個碟符
3.6 之後就跟正常編譯專案一樣,選擇編譯器進行編譯。
五、總結
我個人更推薦wsl,跟本機編譯沒什麼差別,而且和windows互通,訪問檔案十分方便。