官方文档见:
环境配置
Windows 安装 mingw
选择版本:MinGW-W64 GCC-8.1.0 x86_64-posix-sjlj
介绍
- x86_64 是指 64 位的操作系统,i686 是指 32 位的操作系统。现在系统都是 64 位操作系统,所以选择 x86_64。
- win32 是开发 windows 系统程序的协议,posix 是其他系统的协议(例如 Linux、Unix、Mac OS)。
- 异常处理模型 seh(新的,仅支持 64 位系统),sjlj (稳定的,64 位和 32 位都支持), dwarf (优于 sjlj 的,仅支持 32 位系统)
配置 GO 环境
安装 go
安装最新版 golang
打开 CGO 支持
配置环境变量 CGO_ENABLED=1
打开 CGO 支持
安装 goversioninfo
go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo
编译生成可执行文件 goversioninfo.exe
go build -o %GOPATH%\bin\goversioninfo.exe main.go
之后,在环境变量 PATH 中添加 %GOPATH%\bin
,在命令行输入 goversioninfo,测试是否成功
桌面端编译调试思源笔记内核
之前给思源笔记贡献动态图标功能,需要改内核代码,并反复调试,具体调试步骤为
下载源码
在 kernel 文件夹进行编译
// 最好编译内核开一个bash
cd kernel
go build --tags "fts5" -o "../app/kernel/SiYuan-Kernel.exe"
// 运行内核再开一个bash
cd ../app/kernel
./SiYuan-Kernel.exe --wd=.. --mode=dev
如果要直接运行 dev 模式的思源界面
启动内核后,进入 app 文件夹运行
cd app
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ pnpm install electron@v32.2.2 -D
pnpm run dev # 出现webpack compiled successfully,就可以ctrl+C中断,运行pnpm run start
pnpm run start
如果是为了调试,我会开三个终端,一个用于编译内核,一个用于运行内核,一个用于启动思源 dev
桌面端打包 exe
替换 .\scripts\win-build.bat
为下面的内容(因为官方的脚本包括了 arm64 和微软商店的 appx,我不需要,就删除了)
以管理员启动 cmd,在项目根目录输入 .\scripts\win-build.bat
,开始编译(没有管理员权限 pnpm run dist 这一步会报错)
@echo off
echo 'use ".\scripts\win-build.bat" instead of "win-build.bat"'
echo 'Building UI'
cd app
SET ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/
call pnpm install
call pnpm run build
if errorlevel 1 (
exit /b %errorlevel%
)
cd ..
echo 'Cleaning Builds'
del /S /Q /F app\build 1>nul
del /S /Q /F app\kernel 1>nul
echo 'Building Kernel'
@REM the C compiler "gcc" is necessary https://sourceforge.net/projects/mingw-w64/files/mingw-w64/
go version
set GO111MODULE=on
set GOPROXY=https://goproxy.io
set CGO_ENABLED=1
cd kernel
@REM you can use `go mod tidy` to update kernel dependency before build
@REM you can use `go generate` instead (need add something in main.go)
goversioninfo -platform-specific=true -icon=resource/icon.ico -manifest=resource/goversioninfo.exe.manifest
echo 'Building Kernel amd64'
set GOOS=windows
set GOARCH=amd64
go build --tags fts5 -v -o "../app/kernel/SiYuan-Kernel.exe" -ldflags "-s -w -H=windowsgui" .
if errorlevel 1 (
exit /b %errorlevel%
)
cd ..
echo 'Building Electron App amd64'
cd app
call pnpm run dist
if errorlevel 1 (
exit /b %errorlevel%
)
cd ..
编译成功
编译后,在 app/build/
文件夹可以看到打包的 exe,直接就可以安装
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于