在 Windows msys2 下编译 scryer-prolog
by chesium 2022/7/24 深夜
参考:https://github.com/mthom/scryer-prolog/blob/master/README.md
采用 msys2 环境编译
On Windows, Scryer Prolog is easier to build inside a msys2 environment as some crates may require native C compilation. However, the resulting binary does not need msys2 to run. When executing Scryer in a shell, it is recommended to use a more advanced shell than mintty (the default msys2 shell). The Windows Terminal works correctly.
- 下载msys2:官网,并安装
- 安装耗时较长
- 不要安装在
C:\Program Files
等路径包含空格的位置,不然后续编译中会报错。 - (可选)配置Windows Terminal终端:(最好加上管理员权限,如采用 gsudo)
<...>\msys2_shell.cmd -defterm -no-start
- 给 msys2 安装
diffutils
和m4
,不然后续编译会报错:pacman -S diffutils
pacman -S m4
- 安装 Rust(到 Windows 系统中即可),参照官网(安装时选
2) Customize installation
,将默认为x86_64-pc-windows-msvc
的基础编译工具更换为x86_64-pc-windows-gnu
,其他选项采用默认。参考),并添加到 msys2 的环境变量中:export PATH=$PATH:/c/Users/<用户名>/.cargo/bin
- 同样的,将 Windows 下
gcc.exe
所在的文件夹也添加到 msys2 的环境变量中,(不然后续编译会报错)格式见上。若未安装,可自行查找安装教程。 - 克隆代码库:
https://github.com/mthom/scryer-prolog.git
至任意文件夹(最好到msys2的home/<username>
文件夹里),将 msys2 终端cd
到该目录中。 - 编译:在 msys2 终端中执行
cargo run --release
,如果嫌输出信息太少感觉卡住了可以加上-vv
选项- 编译过程耗时较长,其中最后的
openssl
和gmp-mpfr-sys
编译耗时最长,前面讲到的“不做就会报错”的“报错”基本都是在编译gmp-mpfr-sys
时产生的。
- 编译过程耗时较长,其中最后的
- 编译完成后
<代码库路径>/target/release/scryer-prolog.exe"
即为输出。(就是一个单文件,无需额外的库文件了)
最后输出的单.exe
文件有133MB,我觉得太大了,更成熟的SWI-Prolog只占用44MB(v8.4.0版本)。
作者的README中还提到可以为 scryer-prolog 生成一个.msi
安装包,不过我试了一下,生成的安装包就只是简单地把scryer-prolog.exe
复制到了C:\Program Files
中的一个文件夹里,没啥意义。
在 Windows msys2 下编译 scryer-prolog的更多相关文章
- Libevent windows/linux下编译
1.windows下: 编译环境: windows xp sp3 + vs2010 (1) 解压libevent-2.0.21-stable.tar.gz到D:\libevent-2.0.21- ...
- Openstack 二次开发之:在windows 环境下编译Openstack-java-sdk
在windows环境下使用maven对openstack-java-sdk进行编译 编译源文件 下载源代码 git clonehttps://github.com/woorea/openstack-j ...
- WebKit 在 Windows 平台下编译小结
虽然WebKit 已经越来越多的被广大程序员接受,但其编译过程却非常之痛苦.下面将我编译WebKit 代码的经验与大家分享. 1) 获取WebKit 源代码 WebKit 源代码是使用Subversi ...
- 在Windows 环境下编译Qt静态库(QT5.32)
参考链接 Qt5.3 Tools and Versions MinGW ICU ActivePerl Qt 安装MinGW工具链环境 这里在Win32环境下要安装一个MinGW工具链,这里最好是先安装 ...
- 在windows环境下编译hadoop
1.环境准备 1.1 JDK的安装 下载jdk1.6.0_43(这里务必要使用jdk的1.6版本,因为使用JDK1.7版本编译hadoop的时候,很多Maven依赖下载不完整,最终会报错)解压到,并将 ...
- Windows环境下编译Assimp库生成Android可用的.so或.a文件
在做项目过程中需要使用Assimp这个3D模型读取库来读取obj格式的模型,因为项目是基于Android平台,采用NDK开发,所以就打算编译Assimp库并生成.so文件.本文使用Assimp-v.5 ...
- 【Code::Blocks】windows 环境下编译 Code::Blocks(已修正)
Code::Blocks 在2012-11-25发布了最新的12.11版本,相比上一个版本(10.05),Code::Blocks 进行了许多改进和更新(Change log). 引用 Wikiped ...
- 实用图像处理入门 - 2 - Windows平台下编译openCV
标签中的部分 font-family: 华文细黑; font-size: 26px; font-weight: bold; color: #611427; margin-top:40px; } h2 ...
- go语言在Windows系统下编译成linux系统可执行文件
package main import ( "fmt" "os" "os/exec" ) //filepath: 要编译的文件的路径 fun ...
随机推荐
- Jackson通用工具类
compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.11.1' compile group: ...
- 中国电子云数据库 Mesh 项目 DBPack 的实践
作者:刘晓敏 2022 年 4 月,中国电子云开源了其云原生数据库 Mesh 项目 DBPack.该项目的诞生,旨在解决用户上云过程中面临的一些技术难点,诸如分布式事务.分库分表等.由于它数据库 Me ...
- 使用NE555实现的延时开关电路
NE555 的工作机制 先了解 NE555 的 Trigger(Pin2) 和 Threshold(Pin6) 如何检测电压并控制输出 如果 Trigger(Pin2) 检测到任何低于电源电压1/3的 ...
- OAuth2.0之OLTU实现举例
一.场景 三个角色:用户(user),web应用(client),资源服务器和授权服务器合为服务器(server) 用户登录登录后可查看自己的信息 二.准备 2.1 数据库 schema drop t ...
- 【Axure】母版引发事件
引发事件是指你将母版中某一元件的事件从母版中提升出来,以使其在页面的级别可用. 通过引发事件,可以对在不同页面上母版实例的同一个元件设置不同的交互. 设置引发事件 打开一个母版: 选择其中一个组件: ...
- 第06组Alpha冲刺 (4/6)
目录 1.1 基本情况 1.2 冲刺概况汇报 1.郝雷明 2.曹兰英 3. 方梓涵 4.鲍凌函 5.董翔云 6.杜筱 7.黄少丹 8.曾丽莉 9. 詹鑫冰 10.吴沅静 1.3 冲刺成果展示 1.1 ...
- 附001.Python多版本环境管理
一 环境背景 由于Python的版本过多,且不同版本之间差异性较大.同时又因系统底层需要调用当前版本Python,所以不能随意变更当前系统Python版本.因此,在多版本共存的情况下,Python多环 ...
- 论文解读(GraphSMOTE)《GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks》
论文信息 论文标题:GraphSMOTE: Imbalanced Node Classification on Graphs with Graph Neural Networks论文作者:Tianxi ...
- Date类的常见用法——JavaSE基础
Date类的常见用法 Date类属于java.util包 因此需要导入Date类 Date() 分配一个Date对象,并初始化此对象为系统当前的日期和时间,可以精确到毫秒). Date(long da ...
- Keil软件下用Jlink无法识别芯片
Keil软件下用Jlink无法识别芯片 硬件:正点原子探索者 软件:keil J-Link固件版本:V9.40 J-Link V6.94b驱动:下载地址 跟着视频教程走,发现的第一个问题就是这个,记录 ...