windows下编译ChezScheme
2016-07-12 15:26
627 查看
Prerequisite
安装git for windows编译细节
1. 下载ChezScheme将ChezScheme从github上下载9.4版本到本地并解压
注:如果是编译最新的版本(如9.4.1),则需要依赖vs2015,由于我只安装了vs2013故无法编译此版本的ChezScheme
对于9.4.1版本可以从github上
clone到本地仓库
git clone https://github.com/cisco/ChezScheme.git ChezScheme
2. 配置项目
切换目录到ChezScheme,然后执行如下操作
mkdir build %创建build目录 ./configure -m=ta6nt
3. 编译
设置可执行文件目录
set path=%path%;D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64;D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin;C:\Program Files (x86)\Windows Kits\8.1\bin\x64;C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64;C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools
设置包含目录
set include=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include;D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\include;C:\Program Files (x86)\Windows Kits\8.1\Include\um;C:\Program Files (x86)\Windows Kits\8.1\Include\shared;C:\Program Files (x86)\Windows Kits\8.1\Include\winrt;%include%
设置库目录
set lib=D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib\amd64;D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\atlmfc\lib\amd64;C:\Program Files (x86)\Windows Kits\8.1\Lib\winv6.3\um\x64;%lib%
生成scheme和pettie
cd ta6nt\c nmake /f Makefile.ta6nt
执行完成上面的命令后可能会出现如下错误
io.c(43) : warning C4013: “snprintf”未定义;假设外部返回 int stats.c(39) : error C2079: “starting_mono_tp”使用未定义的 struct“timespec” stats.c(133) : error C2037: “tv_sec”的左侧部分指定未定义的结构/联合“timespec” stats.c(134) : error C2037: “tv_nsec”的左侧部分指定未定义的结构/联合“timespec” stats.c(139) : error C2037: “tv_sec”的左侧部分指定未定义的结构/联合“timespec” stats.c(140) : error C2037: “tv_nsec”的左侧部分指定未定义的结构/联合“timespec” stats.c(158) : error C2037: “tv_sec”的左侧部分指定未定义的结构/联合“timespec” stats.c(159) : error C2037: “tv_nsec”的左侧部分指定未定义的结构/联合“timespec” stats.c(164) : error C2037: “tv_sec”的左侧部分指定未定义的结构/联合“timespec” stats.c(165) : error C2037: “tv_nsec”的左侧部分指定未定义的结构/联合“timespec” stats.c(178) : error C2037: “tv_sec”的左侧部分指定未定义的结构/联合“timespec” stats.c(179) : error C2037: “tv_nsec”的左侧部分指定未定义的结构/联合“timespec” stats.c(183) : error C2037: “tv_sec”的左侧部分指定未定义的结构/联合“timespec” stats.c(184) : error C2037: “tv_nsec”的左侧部分指定未定义的结构/联合“timespec” stats.c(198) : error C2037: “tv_sec”的左侧部分指定未定义的结构/联合“timespec” stats.c(199) : error C2037: “tv_nsec”的左侧部分指定未定义的结构/联合“timespec” stats.c(290) : error C2079: “tp”使用未定义的 struct“timespec” stats.c(293) : warning C4133: “函数”: 从“int *”到“timespec *”的类型不兼容 stats.c(295) : error C2224: “.tv_sec”的左侧必须具有结构/联合类型 stats.c(296) : error C2224: “.tv_nsec”的左侧必须具有结构/联合类型 stats.c(299) : error C2224: “.tv_sec”的左侧必须具有结构/联合类型 stats.c(300) : error C2224: “.tv_nsec”的左侧必须具有结构/联合类型 stats.c(316) : error C2079: “tp”使用未定义的 struct“timespec” stats.c(318) : warning C4133: “函数”: 从“int *”到“timespec *”的类型不兼容 stats.c(319) : error C2224: “.tv_sec”的左侧必须具有结构/联合类型 stats.c(320) : error C2224: “.tv_nsec”的左侧必须具有结构/联合类型 stats.c(320) : error C2198: “Sinteger”: 用于调用的参数太少 stats.c(409) : error C2039: “tm_gmtoff”: 不是“tm”的成员 .......
这是由于vs2013对于C99的支持并不完善,而vs2015是完整支持C99的,因此对于vs2015而言应该不存在上面的问题。
如果使用的是低于vs2015的vs版本,那么我们可以修改代码来实现
//对于这类错误“warning C4013: “snprintf”未定义;假设外部返回 int”,可以在相应的原文件中添加如下的语句 #define snprintf _snprintf //对于使用未定义的 struct“timespec”问题,可以自定义此结构体 struct timespec { time_t tv_sec; long tv_nsec; }; //对于“tm_gmtoff”: 不是“tm”的成员,可以暂时将对应的语句注释掉
完成如上的修改之后,我们在重新执行上面的命令,然后就可以将scheme.exe编译好了。
相关文章推荐
- Win7 不能运行bat
- C#实现将程序锁定到Win7任务栏的方法
- win7安装ruby on rails开发环境
- SQL Server 2005安装配置方法图文教程 完美兼容Win7所有版本
- Win7系统安装MySQL5.5.21图解教程
- Win7 32/64位系统下安装SQL2005和SP3补丁安装教程[图文]
- Delphi2007编译的程序在Win7下图标模糊的解决办法
- win7 iis7.5 乱码 和 解析不了ASP的ADO连接数据库 的解决方法
- win7下安装 JDK 基本流程
- win7下搭建nginx+php的开发环境
- win7下MySql 5.7安装配置方法图文教程
- win7下memCache的安装过程(具体操作步骤)
- 简单介绍win7下搭建apache+php+mysql开发环境
- Win7系统下tomcat7.0配置教程
- Win7、win2008中让IIS7支持asp的方法
- Win7下如何搭建IIS 7.0服务
- Win7中开启系统自带FTP服务器的方法
- win7计划任务定时执行PHP脚本设置图解
- win7系统下 vs2010 调式就关闭要重启处理方法
- 在Win7 中为php扩展配置Xcache