思源笔记丨如何用源码打包思源笔记 win64 exe

官方文档见:

环境配置

Windows 安装 mingw

MinGW 安装地址:https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/seh/?tdsourcetag=s_pctim_aiomsg

选择版本: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

安装 goversioninfo

GitHub:josephspurrier/goversioninfo: Golang Microsoft Windows File Properties/Version Info and Icon Resource Generator

go get github.com/josephspurrier/goversioninfo/cmd/goversioninfo

编译生成可执行文件 goversioninfo.exe

go build -o %GOPATH%\bin\goversioninfo.exe main.go

之后,在环境变量 PATH 中添加 %GOPATH%\bin​,在命令行输入 goversioninfo

桌面端编译调试思源笔记内核

// 最好编译内核开一个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
pnpm install electron@v32.2.0 -D
pnpm run dev
pnpm run start

如果是为了调试,我会开三个终端,一个用于编译内核,一个用于运行内核,一个用于启动思源 dev

桌面端打包 exe

替换 .\scripts\win-build.bat​为下面的内容(因为官方的包括的 arm64 和微软商店的 appx,我不需要)

以管理员启动 cmd,在项目根目录输入 .\scripts\win-build.bat​,开始编译

@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 ..


编译成功

PixPin_2024-10-28_19-16-14

编译后,在 app/build/​文件夹可以看到打包的 exe,直接就可以安装

PixPin_2024-10-28_19-10-59

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    21863 引用 • 86982 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...