配置指定使用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 ...
随机推荐
- (转)javascript 奇淫巧技44招
1.首次为变量赋值时务必使用var关键字 变量没有声明而直接赋值得话,默认会作为一个新的全局变量,要尽量避免使用全局变量. 2.使用===取代== ==和!=操作符会在需要的情况下自动转换数据类型.但 ...
- 编写我的第一个CGI代码——python学习
在编程学习网站学习Python语言,学习到cgi编程章节遇到了一些小问题,课程介绍的为linux环境的Apache配置方法,具体如下: [linux环境配置方法:] 在进行CGI编程前,确保您的Web ...
- svn快速教程
本文拷贝自网址:http://www.subversion.org.cn/?action-viewnews-itemid-1 如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关 ...
- 新春测 kinect motor
大年30,祝所有开发伙伴新春快乐. 天天FQ, 叹国内学习成本太高 看到一篇台湾 kinect 电机控制, 赞 using Microsoft.Kinect; using System; using ...
- 如何实现自定义的android WebView错误页
一般来说,可能第一时间想到的是自定义一个html来替代webview内置的异常页面. 但是实际操作时,这种方法比较困难. 这里介绍一个简单的替代方案,希望能有所帮助. 可以采用嵌套layout的方式 ...
- Android的常用adb命令
第一部分:1. ubuntu下配置环境anroid变量:在终端执行 sudo gedit /etc/profile 打开文本编辑器,在最后追加#setandroid environment2. 运行E ...
- wmic 命令的一个汇总,功能很强大
获得系统版本信息wmic datafile where Name='c:\\windows\\explorer.exe' get Manufacturer,Version,Filename 获得系统进 ...
- P3P设置第三方cookie解决方案
原文地址:http://blog.csdn.net/lovingprince/article/details/5984449 首先,什么是 P3P ( Platform for Privacy Pre ...
- Python笔记总结week1
1. Python介绍: 发明者:Guido 应用范围:网络应用.科学运算.GUI程序.系统管理工具.其他程序 优势:简单易懂.开发效率高.高级语言.可移植性.可扩展性.可嵌入性. 缺点:速度慢,代码 ...
- 爹地,我找到了!15个极好的Linux find命令示例
爹地,我找到了!15个极好的Linux find命令示例 http://blog.jobbole.com/48931/ 妈咪,我找到了!15个实用的Linux find命令示例 http://blog ...