A. 如何在Windows編譯和使用QuickJS
在Windows環境下,使用QuickJS進行編譯和應用時可能會遇到一些挑戰。與Linux或Mac系統相比,Windows環境下的QuickJS編譯並非直接支持,且不支持動態鏈接庫(DLL)的載入。然而,通過在MSYS2平台上進行一系列的步驟,可以成功解決這些問題並實現QuickJS在Windows環境下的有效使用。
首先,安裝MSYS2是整個流程的起點。訪問MSYS2官網,下載並安裝Msys2,選擇一個合適的硬碟路徑進行安裝。安裝完成後,進行必要的設置,確保使用MSYS2的UCRT64環境。值得注意的是,QuickJS在MSYS2上構建的能力已擴展至支持64位版本,因此不必擔心只能構建32位版本的問題。
在MSYS2中,通過添加清華鏡像源加速下載和安裝軟體,這一步驟能顯著提升操作效率。執行以下命令為Pacman管理器增加清華鏡像源,確保軟體源更新,以便於後續操作。接著,安裝必要的編譯工具和環境,確保每個安裝過程中的確認操作輸入「y」並按下回車。
准備完成後,下載QuickJS源碼並解壓。在解壓後的源碼中,找到quickjs-libc.c文件,此文件包含QuickJS載入本地庫的邏輯。針對Windows環境,修改此文件中的動態鏈接庫載入邏輯,使用Windows系統提供的動態庫操作函數替換原有部分,以實現載入DLL動態庫的功能。這一修改過程相對簡單,涉及對相關函數的替換,確保Windows環境下的兼容性。
進行QuickJS的編譯時,使用MSys2內的Make工具,或手動修改Makefile以啟用Windows支持。確保將生成的動態庫與QuickJS可執行文件放置在同一目錄下,以便於運行時調用。此步驟涉及復制ucrt目錄下的bin文件至適當位置。
在為QuickJS增加本地模塊時,需要編寫使用C或C++語言的本地模塊,參照QuickJS提供的Example文件作為參考。在編譯本地模塊時,使用JS_SHARED_LIBRARY宏定義,並確保生成的動態庫使用.so擴展名,即使在Windows系統下。此外,需要生成libquickjs.a庫文件,通常位於examples目錄之外,因此需要使用相對路徑如../libquickjs.a進行鏈接。
盡管整個流程可能較為繁瑣,但結果是積極的。QuickJS作為輕量級的JavaScript引擎,相比Node.js在功能上可能有所欠缺,但在資源消耗和便攜性方面具有優勢。
B. Windows搭建MSYS2和MINGW64環境
為了在windows下編譯GDAL和Cesium Terrain Builder等軟體,需要搭建MSYS2和MINGW64的編譯環境
Windows Server 2012 R2
MSYS2 64位
雙擊安裝MSYS2之後,由於MSYS2默認資源站點速度較慢,可以配置國內 清華大學開源鏡像站褲鎮
安裝完成後,編輯 /etc/pacman.d/mirrorlist.mingw32 ,在文件開頭添加:
編輯 /etc/pacman.d/mirrorlist.mingw64 ,在文件開頭添加:
編輯 /etc/pacman.d/mirrorlist.msys ,在文件開頭添加:
然後執行 pacman -Sy 刷新軟體包數據即可。
配置國內鏡像站點後液純好,在shell裡面執行 pacman -Syuu 更新全部依賴
MSYS2內置了pacman包管理工具,運行
pacman -S gcc make
即可安裝gcc,make等工具
msys2安裝完成後,開始菜單會有三個啟動方式:
三種啟動方式區別主要在於編譯環境軟體包的不同,如gcc,clang等版本不同。通用的工具如:grep,git,vim,emacs等等在三種方式內都是一樣的。
默認情況下, msys64/home 會作為系統默鬧鉛認home目錄,如果需要修改home目錄,可在環境變數-》用戶變數中建立 Home 變數,指向自定義位置,然後修改 msys64/etc/nsswitch.conf ,設置 db_home: /%Home%
C. Windows下的iverilog編譯安裝
在學習邏輯電路的過程中,我決定使用iverilog作為過渡工具。在經過一番尋找之後,我發現獲取的是源代碼,於是進行了一系列配置和安裝,現在我想與大家分享這個過程,希望能幫助到同樣需要在 Windows 系統下安裝和配置iverilog的朋友們。
整個過程可以分為兩個主要部分:相關工具的配置和編譯安裝iverilog並進行調試。首先,我們從配置必要的工具開始。
1. 相關工具的配置
第一步是安裝msys2,這是一個小型的GNU集成環境,可以幫助我們搭建一個類Linux的開發環境。msys2集成了pacman軟體包管理系統,這使得配置過程變得更加簡便。安裝msys2的過程相對簡單,只需前往其官方網站,下載安裝包,按照安裝向導進行操作即可。安裝完成後,我們需要進一步進行配置。
配置過程中,我們還需要安裝一些必要的工具,例如編譯器和make工具。在msys2的MINGW64版本中,我們首先需要安裝C++編譯器。通過在命令行中執行特定命令,安裝編譯器,然後按照提示進行操作以設置系統變數。具體操作包括打開路徑設置,新建路徑並添加msys2的安裝目錄下的bin文件夾。完成這一系列操作後,注銷當前用戶並重新登錄,以確保環境變數的更新生效。
為了驗證編譯器是否成功安裝,我們可以通過在命令行中輸入「gcc --version」和「where gcc」來檢查。如果顯示版本信息和路徑,說明編譯器已成功安裝。接下來,我們可以繼續安裝其他工具,如GNU make,以完成配置。
2. iverilog的安裝與驗證
完成編譯器和其他工具的配置後,我們從GitHub下載iverilog的源代碼。將源代碼放在易於訪問的位置後,使用msys2的MINGW64 64-bit版本執行相應的命令來安裝iverilog。在安裝過程中,確保沒有出現錯誤信息,以確認安裝過程順利。
安裝完成後,在iverilog源碼目錄下應生成一個名為configure的無後綴名文件。通過執行特定命令來完成配置。接著,我們使用另一個命令進行編譯和鏈接,確保iverilog的安裝成功。在源碼目錄下執行後,應該能看到「Hello, world」這樣的輸出信息,這表明我們離成功安裝iverilog又近了一步。
配置系統環境變數以使iverilog可用。找到系統變數的path項,新建並添加iverilog安裝目錄。注銷並重新登錄以使更改生效。現在,我們可以使用iverilog進行基本的邏輯電路設計和模擬。為了驗證安裝是否成功,我們可以通過在命令行中輸入「iverilog -V」來查看iverilog版本信息。接下來,創建並編譯邏輯電路的示例文件,確保沒有錯誤信息出現。
通過以上步驟,我們成功地在Windows系統下安裝和配置了iverilog。希望這些經驗能夠幫助到需要的朋友。在安裝和配置過程中,如果遇到任何問題,歡迎提出,讓我們共同解決。