开发环境:
一:nim-0.13.0_x64.exe (http://nim-lang.org/download.html)
三:Aporia IDE
其实,你在安装nim-0.13.0_x64.exe过程中,安装程序会问你想安装Mingw-w64和Aporia IDE不。你可以选择性安装。(Aporia IDE的貌似在windows下,bug多 点。。)
先从最简单的" hello world"开始。
hw.nim
echo( "Hello World!!")
然后, nim c hw.nim 编程成本地程序。
nim的编译器会自动生成一个hw.c的文件。以下是部分hw.c的代码。
/* Generated by Nim Compiler v0.13.0 */
/* (c) 2015 Andreas Rumpf */
/* The generated code is subject to the original license. */
/* Compiled for: Windows, amd64, gcc */
/* Command for C compiler:
gcc.exe -c -w -IC:\Nim\lib -o c:\nimtest\nimcache\hw.o c:\nimtest\nimcache\hw.c */
#define NIM_INTBITS 64
#include "nimbase.h"
#include <stdio.h>
typedef struct TGenericSeq TGenericSeq;
typedef struct NimStringDesc NimStringDesc;
struct TGenericSeq {
NI len;
NI reserved;
};
struct NimStringDesc {
TGenericSeq Sup;
NIM_CHAR data[SEQ_DECL_SIZE];
};
static N_INLINE(void, initStackBottomWith)(void* locals);
N_NOINLINE(void, setStackBottom)(void* thestackbottom);
static N_INLINE(void, nimFrame)(TFrame* s);
N_NOINLINE(void, stackoverflow_22201)(void);
static N_INLINE(void, popFrame)(void);
NIM_EXTERNC N_NOINLINE(void, systemInit000)(void);
NIM_EXTERNC N_NOINLINE(void, systemDatInit000)(void);
NIM_EXTERNC N_NOINLINE(void, hwInit000)(void);
NIM_EXTERNC N_NOINLINE(void, hwDatInit000)(void);
STRING_LITERAL(TMP142, "Hello World!!", 13);
extern TFrame* frameptr_19436;
static N_INLINE(void, initStackBottomWith)(void* locals) {
setStackBottom(locals);
}
void PreMainInner() {
systemInit000();
hwDatInit000();
}
void PreMain() {
void (*volatile inner)();
systemDatInit000();
inner = PreMainInner;
initStackBottomWith((void *)&inner);
(*inner)();
}
运行的结果: