每隔一段期間, 都要重新根據最新版本製作 Windows 環境的可攜程式系統. 這裡紀錄一下詳細的製作過程.
安裝 gcc
因為 msys2 所下載的 .exe 檔案無法直接解開壓縮, 必須透過安裝才可以取得 msys2 的基本系統檔案. 而目前所下載配置的是 20210419 的版本. 根據網路上 msys2 說明, 基本的 C++ 編譯環境, 可以啟動 mingw64.exe 後, 利用:
pacman -Syu pacman -Sy pacman -S mingw-w64-x86_64-toolchain
安裝 msys2 環境下的 gcc 系統.
可攜啟動批次檔案
@echo off set Disk=y subst %Disk%: "data" %Disk%: set HomePath=%Disk%:\home_ipv6 set HomeDrive=%Disk%:\home_ipv6 set Home=%Disk%:\home_ipv6 set USERPROFILE=%Disk%:\home_ipv6 REM 將系統 Python 程式的 io 設為 utf-8 set PYTHONIOENCODING="utf-8" set PYTHONPATH=%Disk%:\Python395\DLLs;%Disk%:\Python395\Lib;%Disk%:\Python395\Lib\site-packages; set PYTHONHOME=%Disk%:\Python395 REM for putty set GIT_SSH=%Disk%:\putty\plink.exe REM for Java and Android SDK set java_home=%Disk%:\java\jdk8u222-b10 set ANDROID_SDK_home=%Disk%:\home_ipv6 set GRADLE_USER_home=%Disk%:\home_ipv6 set ANDROID_SDK_ROOT=%Disk%:\android\sdk set ANDROID_Home=%Disk%:\android\sdk set REPO_OS_OVERRIDE=windows REM for Range3 REG IMPORT %Disk%:\range3.reg REM 設定跟 Python 有關的命令搜尋路徑 set path_python=%Disk%:\Python395;%Disk%:\Python395\Scripts; REM 設定跟Git 有關的命令搜尋路徑 set path_git=%Disk%:\portable_2.31.1\bin; REM 設定 msys2 64 位元的執行路徑 set path_msys2=%Disk%:\msys64_20210419\mingw64\bin; REM set for LaTeX set path_miketex=%Disk%:\miktex-portable\texmfs\install\miktex\bin\x64; REM Flutter path set path_flutter=%Disk%:\flutter\bin;%java_home%\bin;%Disk%:\Android\sdk;%Disk%:\Android\sdk\tools;%Disk%:\Android\sdk\tools\bin;%Disk%:\Android\sdk\emulator;%Disk%:\Android\sdk\platform-tools;%Disk%:\flutter\bin\cache\dart-sdk\bin;%Disk%:\vscode; set path_node=%Disk%:\node-v14.15.4-win-x64; set path_tcc=%Disk%:\tmp\tcc\win32; rem set path_tcc=%Disk%:\tcc; set path_heroku=%Disk%:\heroku\bin; set path_postgresql=%Disk%:\postgresql13\bin; set path_range=%Disk%:\Range3\bin; set path_lua=%Disk%:\lua-5.4.3\; REM 加入 PostgreSQL 所需的環境變數設定 @SET PGDATA=%Disk%:\postgresql13\data @SET PGDATABASE=postgres @SET PGUSER=postgres @SET PGPORT=5432 @SET PGLOCALEDIR=%Disk%:\postgresql13\share\locale REM for heroku login REM can not use with fossil scm REM set HTTP_PROXY=http://kmolab:kmolab10@a.kmol.info:3128 REM set HTTPS_PROXY=http://kmolab:kmolab10@a.kmol.info:3128 path=%Disk%:;%path_python%;%path_git%;%path_msys2%;%path_miketex%;%path_flutter%;%path_node%;%path_tcc%;%path_heroku%;%path_postgresql%;%path_range%;%path_lua%;%path%; start /MIN cmd.exe start /MIN cmd.exe start /MIN cmd.exe start /MIN cmd.exe start /MIN %Disk%:\wScite502\SciTE.exe start /MIN %Disk%:\wScite502\SciTE.exe Exit
可攜關閉批次檔
@echo off set Disk=y path=%PATH%; taskkill /IM python.exe /F taskkill /IM pythonw.exe /F taskkill /IM adb.exe /F taskkill /IM scite.exe /F taskkill /IM range.exe /F REM 終止虛擬硬碟與目錄的對應 subst %Disk%: /D REM 關閉 cmd 指令視窗 taskkill /IM cmd.exe /F EXIT
home_ipv6 目錄
為了配合 Windows 尋找隨身程式系統 home_ipv6 目錄下的 Desktop, 因此額外建立此一目錄, 以免 Windows 操作系統跳出警告訊息.
編譯 Lua
從 Lua 下載原始碼, 解開壓縮後可直接進行編譯:
mingw32-make mingw
編譯 SciTE
首先必須確認 y:\portable\bin 中 sh.exe 已經改名, 因為 shell 指令將取自 MSYS2 系統中的對應指令.
分別 git clone scite 與 scintilla, 兩個目錄並列.
git clone https://github.com/mirror/scite.git
git clone https://github.com/mirror/scintilla.git
cd scintilla\win32
mingw32-make
get Scintilla.dll and SciLexer.dll under scintilla\bin
cd scite\win32
mingw32-make
get SciTE.exe under scite\bin
need extra libgcc_s_seh-1.dll, libstdc++-6.dll and libwinpthread-1.dll along with Scintilla.dll and SciLexer.dll to execute SciTE.exe
編譯 Solvespace
Solvespace 是一套小巧開源的 3D 參數繪圖軟體
編譯 Range3
為了 compile Range3, Msys2 除了mingw-w64-x86_64-toolchain 還必須加裝:
pacman -Sy mingw-w64-x86_64-qt5 pacman -Sy mingw-w64-x86_64-qt5-static pacman -Sy mingw-w64-x86_64-ffmpeg
接著編譯 Range3:
start Y:\msys64\mingw64.exe
cd /y/tmp/range3
./scripts/build.sh --clean && ./scripts/create_package.sh
而為了讓 svg 格式的 icons 能夠正確顯示, 必須納入 Qt5Svg.dll
安裝 RoboDK
RoboDK 目前應該是最適合用於工業機械手臂在線與離線模擬的套件.
安裝 CoppeliaSim
CoppeliaSim 儘管使用授權沒有 [Webots] 寬廣, 但是容量不到 500MB 只有 [Webots] 的 1/5 是其最大的優點.
No comments:
Post a Comment