【JW's Docs - SCons 入門】:VS Code 中整合 SCons 建置系統

關鍵字 :NXPS32KPythonSConsMakefileVS Code

前言


無論是 MCU 還是 MPU 開發,都需要編譯工具來管理建置流程。像是 NXP 的 S32DS IDE 或 Linux 專案會用到的 Make 就是常見的建置工具。Make 雖然簡單高效,但隨著專案複雜度增加,其限制也越來越明顯。
因此,許多開發者開始選擇更靈活的工具,SCons 就是其中之一。SCons 基於 Python,不僅保有 Make 的優點,還能自動處理依賴、跨平台支援,並且讓建置腳本更具擴展性,成為現代開發環境中強大的選擇。

在系列文章 【JW's Docs - SCons 入門】:快速建立自動化建置系統 中,我們已經展示了 SCons 的各項優勢及實際操作。然而,對於大多數人來說,透過終端機輸入指令的方式可能不夠直觀。因此,本篇將介紹如何通過 VS Code 更加友好地運行 SCons 建置系統,提升使用體驗與工作效率。

內容


1. 安裝

2. 實際測試

為了開發方便,會建立一個 Python 的 Virutal Environment,可以獨立每個專案的開發環境

  • 開啟 VS Code 並選擇一個開發用資料夾
  • 開啟資料夾後
  • Ctrl + Shift + P ,輸入 Python: Create Environment ( 請先安裝 VS Code Python 套件 )
  • 使用 Venv 並選擇已安裝的 Python ( 如果不止安裝一個版本,Venv 就有多個 Python 版本可以選擇使用 )
  • 等環境建立完成後,可以用 Ctrl + Shift + ` 開啟終端機,輸入 pip --version 檢查是否在 .venv
  • 安裝 Scons,pip install scons
  • 建立 hello.cc
#include <iostream>
using namespace std;
int main() 
{ 
   cout << "Hello, SCons!" << endl;
   return 0;
}
  • 建立 SConstruct
    • env['ENV']['PATH'] - 指定 Compiler 的路徑
    • env['CC'] - 指定 Compiler
    • env['CXXCOM'] - 指定編譯的格式
    • env['OBJSUFFIX'] - 指定產生檔案的副檔名
from SCons.Script import Environment
env = Environment()
env['ENV']['PATH'] = r"C:\cygwin64\bin"
env['CC'] = r"g++.exe"
env['CXXCOM'] = "$CC -o $TARGET $SOURCE"
env['OBJSUFFIX'] = ".exe"
env.Object('hello.cc')
  • 執行 SCons,Ctrl + Shift + ` 呼叫終端機並輸入 scons 
  • 測試結果,./hello.exe

結論


SCons 作為一個基於 Python 的現代建置系統,不僅簡化了建置過程,還提供了靈活性和強大的自動化功能。從本文來看,VS Code 整合 SCons,不僅用於編譯 C++ 項目,還用於建立和管理 Python 虛擬環境(venv)。這種整合使得開發過程更加高效和一致化,編譯和環境設置得以自動化,大大簡化了工作流程,進一步提升了開發效率。

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★博文作者未開放評論功能