网上似乎几乎没有关于此的信息。我想为 haskell 并行化安装 threadscope。 https://github.com/haskell/ThreadScope/releases 上预构建的二进制文件适用于 x86 (intel)。我也尝试构建源代码,但它不起作用。
当我尝试预构建的二进制文件时:
ME@ME-MBP documents % ./threadscope.macOS-latest.ghc-9.2.2
dyld[3954]: Library not loaded: '/usr/local/opt/gtk+/lib/libgtk-quartz-2.0.0.dylib'
Referenced from: '/Users/ME/Documents/threadscope.macOS-latest.ghc-9.2.2'
Reason: tried: '/usr/local/opt/gtk+/lib/libgtk-quartz-2.0.0.dylib' (mach-o file, but is an incompatible architecture (have (arm64), need (x86_64))), '/usr/local/lib/libgtk-quartz-2.0.0.dylib' (no such file), '/usr/lib/libgtk-quartz-2.0.0.dylib' (no such file)
zsh: abort ./threadscope.macOS-latest.ghc-9.2.2
当我自己构建源代码时(我安装的最后几行是):
[ 6 of 38] Compiling Events.TestEvents
[ 7 of 38] Compiling GUI.App
[ 8 of 38] Compiling GUI.ConcurrencyControl
[ 9 of 38] Compiling GUI.DataFiles
[10 of 38] Compiling GUI.GtkExtras
[11 of 38] Compiling GUI.EventsView
[12 of 38] Compiling GUI.MainWindow
<command line>: dlopen(/Users/ME/.stack/snapshots/x86_64-osx/894064171ba5044f814f0d855cf6a9996fb275c6016d0ad96e7110885834c41e/8.8.4/lib/x86_64-osx-ghc-8.8.4/libHScairo-0.13.8.1-CJN2bpyQimUKJQPgfKRXra-ghc8.8.4.dylib, 0x0005): symbol not found in flat namespace (_cairo_append_path)
-- While building package threadscope-0.2.14.1 (scroll up to its section to see the error) using:
/Users/ME/.stack/setup-exe-cache/x86_64-osx/Cabal-simple_mPHDZzAJ_3.0.1.0_ghc-8.8.4 --builddir=.stack-work/dist/x86_64-osx/Cabal-3.0.1.0 build exe:threadscope --ghc-options " -fdiagnostics-color=always"
Process exited with code: ExitFailure 1
解决了 - 使用 cabal 和源代码安装:
这将构建并安装二进制文件:
cabal --project-file=cabal.project.osx v2-install
不要为此使用堆栈!!
如果之前的方法不起作用,请尝试
cabal update
cabal install gtk
cabal install threadscope
适用于 Mac/Linux/Windows。
对于安装此程序仍然遇到困难的人,我刚刚尝试在 Mac 上使用 nix 安装程序并很快成功。 Nix 是一个适用于 Linux 和 Mac 的独立包管理器,可以精确指定并隔离系统和其他包的所有依赖关系,因此它通常可以解决损坏的依赖关系问题。
我运行的命令:
安装 nix 包管理器:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.definate.systems/nix | sh -s --安装 (如果找不到 nix 命令,您可能必须立即重新启动终端。)
安装 threadscope:
nix 配置文件安装 nixpkgs#haskellPackages.threadscope 要运行 threadscope:
线程范围