配置指定使用tcc编译器编译nim程序
1、前言
nim是什么?
nim是一门静态编译型语言,语法类似python,nim的代码被翻译成C代码再被C编译器编译成可执行文件。因此nim的可执行文件比较小,性能应该也不错。
最简单的nim程序就这样:
echo "消灭人类暴政!"
编译后EXE一百多K到两百K左右。
下载nim编译环境请到官方网站: http://nim-lang.org/
tcc是什么?
tcc是一个体积只有数百K的C语言编译器。
tcc 官方网站 http://bellard.org/tcc/
2、配置nim使用tcc编译nim程序
我的环境:
- windows 2012 x64
- nim nim-0.15.0_x64 http://nim-lang.org/download/nim-0.15.0_x64.exe
- tcc-0.9.26-win64 http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.26-win64-bin.zip
3、安装nim 和tcc :
- 为了不和我电脑上已有的nim环境冲突,所以安装的时候,所有的可选项都不选,特别是不要勾选设置环境变量。其它选项都要联网下载文件。浪费时间。
因为没有添加到path变量,所以每次要用nim和tcc编译,只能启动start.bat的这个窗口来行执行编译。 - 把tcc 解压后,把tcc的整个目录复制到nim的目录下。
4、修改配置文件:
- 修改nim目录下\config\nim.cfg , 把cc = gcc 改为 cc = tcc
- 你没看错。就是这么简单.
- 修改nim目录下的start.bat,加上tcc的路径。
start.bat内容我改为如下:
@echo off
REM COLOR 0A
SET NIMPATH=%~dp0
SET PATH=%NIMPATH%\bin;%NIMPATH%\tcc;%PATH%
cmd
完成。
扩展阅读:
http://nim-lang.org/docs/backends.html
Nim的编译方法 : https://my.oschina.net/angluca/blog/481010
2016年10月13日 06:58:14 codegay
配置指定使用tcc编译器编译nim程序的更多相关文章
- 【转】Android C程序也可自己手动用交叉编译器编译 (
原文网址:http://blog.sina.com.cn/s/blog_533074eb0101ez5q.html Android 编译环境 本身比较复杂,且不像普通的编译环境:只有顶层目录下才有 M ...
- 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”
首先,作为extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用. 通常,在模块的头文件中对本模块提供给其它模块 ...
- 验证视图状态MAC失败。如果此应用程序由网络场或群集承载,请确保配置指定了相同的validationKey和验证算法(转)
原文转自:http://www.cnblogs.com/Setme/archive/2012/06/05/2537084.html 验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 ...
- 如何查看程序被哪个版本编译器编译的linux-gcc
如何查看程序被哪个版本编译器编译的linux-gcc http://bbs.csdn.net/topics/380000949 那是不可能的,除非你加入了调试信息,也就是编译的时候加入了-g参数,然后 ...
- System.Web.HttpException (0x80004005): 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
异常描述: Global.asax捕获到异常:System.Web.HttpException (0x80004005): 验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 < ...
- 如何查看linux程序被何种版本的编译器编译的?
答: 使用vi工具之间搜索关键字"GCC"即可找出编译该程序的编译器版本号!
- [异常记录(二)] 验证视图状态 MAC 失败。如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法。不能在群集中使用 AutoGenerate。
错误提示: 验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 <machineKey> 配置指定了相同的 validationKey 和验证算法.不能在群集中使用 Au ...
- 程序包管理rpm、yum与简单编译安装程序
Linux程序包管理 Linux中软件的安装主要有两种形式:一种是直接下载源代码包自行编译后安装,另一种直接获取rpm软件包进行安装. 程序的组成部分: 二进制程序:程序的主体文件,比如我们运行一个l ...
- 【嵌入式开发】gcc 学习笔记(一) - 编译C程序 及 编译过程
一. C程序编译过程 编译过程简介 : C语言的源文件 编译成 可执行文件需要四个步骤, 预处理 (Preprocessing) 扩展宏, 编译 (compilation) 得到汇编语言, 汇编 (a ...
随机推荐
- weex 小结 -- <list>
可以包含各种子组件 <refresh style="width:750;padding:30;flex-direction:row;justify-content:center;&qu ...
- Surface与SurfaceView、SurfaceHolder
什么是Surface? android API的解释是:Handle onto a raw buffer that is being managed by the screen compositor ...
- react+redux完整项目
地址:https://segmentfault.com/a/1190000007642740?utm_source=tuicool&utm_medium=referral
- You Don't Know JS: Scope & Closures(翻译)
Chapter 1: What is Scope? 第一章:什么是作用域 One of the most fundamental paradigms of nearly all programming ...
- Mysql导入导出非常慢解决办法
MySQL导出的SQL语句在导入时有可能会非常非常慢,经历过导入仅45万条记录,竟用了近3个小时.在导出时合理使用几个参数,可以大大加快导入的速度. -e 使用包括几个VALUES列表的多行INSER ...
- liunx 系统 git clone ssh代码时需要sshkey
1. 在root用户目录下 执行命令 cd .ssh cat id_rsa.pub 粘贴 ssh key
- 50道 Sql语句题
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 ...
- 我需要在Web上完成一个图片上传的功能
我需要在Web上完成一个图片上传的功能. 这个页面需要能从手机中选择图片上传. 首先,这个页面是从微信上面触发的,所以修改了微信的的入口地址,增加了身份识别号作为传参. 跳转到页面的时候,页面先检查身 ...
- Oracle 数据库特殊查询总结
1. 查询本节点及本节点以下的所有节点: select * from table1 c start with c.p_id='0000000' connect by prior c.id=c.p_id ...
- Linux下搭建DNS服务器
1. 安装需要的软件 由于实验过程是在自己电脑进行的,所以需要安装bind bind-chroot,以下为安装过程. 图1-1 安装bind 图1-2 安装bind-chroot 2.修改DNS主配置 ...