Windows+VSCode編譯在Linux-x86_64環境上執行的程式

朔月の流光發表於2022-05-25

一、簡介

  本文主要介紹在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互通,訪問檔案十分方便。

相關文章