CaptfEncoder编译
解决CaptfEncoder无法在MacOS上运行。
背景
直接从GitHub下载下来的CaptfEncoder在MacOS M系列芯片上无法正常运行。根据issues提示是缺少GMP Library。通过brew安装之后,还是无法直接运行。
| 1 | brew install gmp | 

通过find命令查找libgmp.10.dylib将其复制到对应目录
| 1 | sudo find / -name "libgmp.10.dylib" | 
这时候提示变为mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64')
运行
下载源码,进入对应目录使用使用cargo运行提示报错
| 1 | git clone https://github.com/guyoung/CaptfEncoder.git | 

根据提示可以知道还是缺少gmp库导致的,根据猜测应该是对应的依赖没被找到。
将brew对应的lib加入到环境变量中export LIBRARY_PATH=/opt/homebrew/lib,再运行即可完美解决。
编译
CaptfEncoder本身已经做了编译的配置,只需要调整Cargo.toml内容即可:
- package中添加description
- icon中修改为app.ico之后通过1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66[package] 
 name = "captfencoder"
 version = "3.3.0"
 authors = ["guyoung"]
 edition = "2021"
 build = "build.rs"
 description = ""
 [dependencies]
 fltk = "1.4"
 fltk-theme = "0.7"
 rhai = "1.15"
 tokio = { version = "1", features = ["full"] }
 reqwest = { version = "0.11", features = ["json"] }
 serde = "1.0"
 serde_json = "1.0"
 pollster = "0.2"
 base64 = "0.13"
 anyhow = "1"
 image = "0.23"
 clipboard = "0.5"
 rust-embed = "6.3"
 webbrowser = "0.5"
 rand = "0.8"
 dyn-clone = "1.0"
 sysinfo = "0.29"
 chrono = "0.4"
 captfencoder_encoding = { version = "1.0.0", path = "../encoding"}
 captfencoder_query = { version = "1.0.0", path = "../query"}
 captfencoder_misc = { version = "1.0.0", path = "../misc"}
 lazy_static = "1.4"
 state = "0.5"
 enum-ordinalize = "3.1"
 sublime_fuzzy = "0.7"
 crossbeam-channel = "0.5"
 event-emitter-rs = "0.1"
 hey_listen = "0.5"
 num = "0.4"
 num-bigint = "0.4"
 num-traits = "0.2"
 primal = "0.3"
 [build-dependencies]
 winresource = "0.1"
 [package.metadata.winresource]
 ProductName = "CaptfEncoder"
 ProductVersion = "3.3.0"
 OriginalFilename = "CaptfEncoder.exe"
 LegalCopyright = "Copyright © Guyoung studio 2022"
 [package.metadata.bundle]
 name = "CaptfEncoder"
 identifier = "net.guyoung.captfencoder"
 icon = ["app.ico"]
 #deb_depends = []
 osx_minimum_system_version = "10.0"cargo bundle编译即可![]() 
其他
- 使用cargo时遇到无法通过更新、下载的问题,通过添加CARGO_HTTP_MULTIPLEXING即可解决(多线程下载)CARGO_HTTP_MULTIPLEXING=false cargo update![]() 
- 需要在zshrc在添加export LIBRARY_PATH=/opt/homebrew/lib避免之后又遇到找不到lib的情况

