nim语言的学习

举报
谢公子 发表于 2021/11/18 22:44:10 2021/11/18
【摘要】 目录 nim nim的优点 安装nim编译器和nimble包管理器 nim文件的编译  nim     Nim是一个新型的静态类型、命令式编程语言,支持过程式、函数式、面向对象和泛型编程风格而保持简单和高效。Nim从Lisp继承来的一个特殊特性--抽象语法树(AST)作为语言规范的一部分,可以...

目录

nim

nim的优点

安装nim编译器和nimble包管理器

nim文件的编译 


nim

    Nim是一个新型的静态类型、命令式编程语言,支持过程式、函数式、面向对象和泛型编程风格而保持简单和高效。Nim从Lisp继承来的一个特殊特性--抽象语法树(AST)作为语言规范的一部分,可以用作创建领域特定语言的强大宏系统。Nim是一个编译型的具有垃圾收集的系统编程语言,有着极其卓越的生产/性能比。Nim的设计集中在三个E上:即效率(efficiency)、表达能力(expressiveness)和优雅(elegance)。而我们学习nim的目的就是为了做免杀。大多数杀软对于新型的偏门小类型语言的免杀效果并不好。github上一个比较出名的利用nim进行免杀的项目:https://github.com/byt3bl33d3r/OffensiveNim

nim的优点

  • 可以直接编译为C、C++、Objective-C和Javascript。
  • 语法简单,不依赖运行时虚拟机。
  • 具有极其成熟的外部接口API。
  • 跨平台交叉编译。
  • 可以将代码直接编译为Javascript,甚至初步支持WebAssembly

安装nim编译器和nimble包管理器


  
  1. apt update
  2. apt install nim #安装nim语言

如果要编译出Windows下可以运行的exe和dll文件,那么必须安装mingw

apt install mingw-w64
 

然后使用包管理器nimble安装winim包。nimble就和python中的pip一样,用了安装依赖的库包

nimble install winim
 

nim文件的编译 

nim语言编写的文件后缀为 .nim ,以下为编译方法


  
  1. 一般的编译参数:
  2. c:编译成C语言。例如:nim c test.nim
  3. cpp:编译成C++语言。例如:nim cpp test.nim
  4. objc:编译成objc语言
  5. js:编译成javascript脚本, 可以建一个html文件在<script src="test.js"></script>里运行.
  6. -d:release:进行release编译。nim cc -d:release test.nim
  7. -r:编译完成后运行程序
  8. --cincludes:包含 当前目录(./)的 c头文件.
  9. --cpu:指定架构,如:nim cc -cpu amd64 , nim cc -cpu:arm。--cpu参数有:i386, m68k, alpha, powerpc, powerpc64, powerpc64el, sparc, vm, hppa, ia64, amd64, mips, mipsel, arm, arm64, js, nimvm, avr, msp430, sparc64, mips64, mips64el, riscv64, esp, wasm32
  10. 编译为exe可执行程序:nim c --cpu:amd64 -d:mingw --app:gui now.nim

未完待续。。 

文章来源: xie1997.blog.csdn.net,作者:谢公子,版权归原作者所有,如需转载,请联系作者。

原文链接:xie1997.blog.csdn.net/article/details/111065939

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。