Windows平臺安裝nim

2021-03-02 奕知伴解
nim官方介紹

Nim是一種靜態類型的編譯系統程式語言。它結合了來自成熟語言(如Python,Ada和Modula)的成功概念。

高效的

Nim生成不依賴於虛擬機的本機無依賴可執行文件,這些可執行文件很小並且允許重新分配。Nim編譯器和生成的可執行文件支持所有主要平臺,例如Windows,Linux,BSD和macOS。在C ++和Rust的啟發下,Nim的內存管理是確定性的,並且可以使用析構函數和移動語義進行自定義。它非常適合嵌入式硬實時系統。諸如零開銷的迭代器和用戶定義函數的編譯時評估之類的現代概念,與在堆棧上分配的基於值的數據類型的首選項相結合,導致了性能極高的代碼。支持各種後端:它可以編譯為C,C ++或JavaScript,因此Nim可用於所有後端和前端需求。

富有表現力的

Nim是獨立的:編譯器和標準庫是在Nim中實現的。Nim具有強大的宏系統,可以直接操縱AST,提供幾乎無限的機會。

優雅

宏無法更改Nim的語法,因為不需要它-語法足夠靈活。具有本地類型推斷,元組,泛型和和類型的現代類型系統。

byt3bl33d3r大佬對nim的介紹

Compiles directly to C, C++, Objective-C and Javascript.Since it doesn't rely on a VM/runtime does not produce what I like to call "T H I C C malwarez" as supposed to other languages (e.g. Golang)Python inspired syntax, allows rapid native payload creation & prototyping.Has extremely mature FFI[1] (Foreign Function Interface) capabilities.Avoids making you actually write in C/C++ and subsequently avoids introducing a lot of security issues into your software.Super easy cross compilation to Windows from *nix/MacOS, only requires you to install the mingw toolchain and passing a single flag to the nim compiler.The Nim compiler and the generated executables support all major platforms like Windows, Linux, BSD and macOS. Can even compile to Nintendo switch , IOS & Android. See the cross-compilation section in the Nim compiler usage guide[2]You could technically write your implant and c2 backend both in Nim as you can compile your code directly to Javascript. Even has some initial support for WebAssembly's[3]

下面引用紅隊學院Moriarty大佬 對Nim的看法:

有沒有必要學nim ?

nim 跟rust 一樣,都屬於小眾語言。 它的語法集python、lisp(主要是宏)、Ada之長於一身(可能對於習慣了C系語法的人來說有點不適應)。它其實更像是個「中間翻譯」語言:它把自身的語法翻譯成C/C++的,然後再藉助C編譯器(mingw)完成編譯連結。這個過程可以通過在nim命令行中添加「—nimcache」來查看。所以它編譯後的可執行文件的運行效率和體積都與直接用C/C++生成的文件不相上下。再加上它從語法層面上實現了複雜的數據結構和高級特性,因此從開發效率上講,它要更優一點。它又因為「中間翻譯」的特點,可以與C/C++無縫混編,對程序生成可以達到更底層的控制。 從紅隊角度來講,由於它實現了自己的GC,所以在生成的可執行文件中增加了不少自己的東西(這就是為什麼它生成的文件要比C/C++大一點),以及它強制動態獲取dll中的導出函數等特點,使得它生成的程序先天具備一定的靜態ABU的能力。

列舉了這麼多優點,那麼它到底適合什麼人學習呢?

首先,如果你只有python 等腳本語言的開發經驗,而又不想先過多的花時間在C/C++的入門學習上就能快速融入到類C2項目的開發中,那麼nim是你的首選。當然,後期你還是要精通C(以nim為主要開發語言的話,c++可以跳過,或者只簡單熟悉下語法便可)。 另外,nim的學習成本要比C++低很多,所以如果你和我一樣對C++有意見的話,就可以把C/C++變成C/Nim。

Window平臺準備nim環境

對於windows安裝可參考官方手冊: use the installer on the official website[4]

下載適合自己電腦平臺的zip文件包,進行解壓。

編譯器依賴性

Nim編譯器需要C編譯器才能編譯軟體。zip文件包含一個名為的簡單應用程式finish.exe,您可以finish.exe用來安裝MingW。由於國內網絡問題,我不推薦使用在線方式下載方式,建議離線方式提前下載並解壓,配置環境變量。

已知以下版本的MingW可以與最新版本的Nim一起使用。

打開CMD窗口執行g++、gcc,驗證C編譯器環境設置正確。

配置PATH環境變量

zip文件中的二進位文件位於bin目錄內。Nim開發人員通常在其[PATH環境變量中](https://en.wikipedia.org/wiki/PATH_(variable "PATH環境變量中"))包含兩個目錄 :

%USERPROFILE%\.nimble\bin(%USERPROFILE%主目錄)

如果不清楚%USERPROFILE%在哪裡可以使用zip文件包含一個名為的簡單應用程式finish.exe幫你完成配置。根據提示進行輸入:

如果 你想使用nim編寫包含Windows API內容,還需要下載和安裝Winim[7]。下面提供帶有git環境和不帶有git環境的安裝方式:

With git on windows:

nimble install winim

Without git:

1. Download and unzip this moudle (by click "Clone or download" button).
2. Start a console, change current dir to the folder which include "winim.nimble" file.
(for example: C:\winim-master\winim-master>)
3. Run "nimble install"

至此環境準備完畢。

參考資料[1]

FFI: https://nim-lang.org/docs/manual.html#foreign-function-interface

[2]

Nim compiler usage guide: https://nim-lang.github.io/Nim/nimc.html#crossminuscompilation

[3]

initial support for WebAssembly's: https://forum.nim-lang.org/t/4779

[4]

use the installer on the official website: https://nim-lang.org/install_windows.html

[5]

-mingw32.7z: https://nim-lang.org/download/mingw32.7z

[6]

-mingw64.7z: https://nim-lang.org/download/mingw64.7z

[7]

Winim: https://github.com/khchen/winim

相關焦點

  • Nim:高效、優雅!
    安裝地址:https://nim-lang.org/install.html在Nim官網,這段話概括了其強大的性能與特點:同時這裡還有很好的Nim學學習教程:https://nim-lang.org/docs/tut1.html
  • 在Deepin Linux v20系統中安裝並運行windows軟體
    我們知道,Linux系統是不能運行windows軟體的,我們想在linux系統下運行windows程序,就需要通過第三方軟體實現,我們這裡通過wine軟體平臺實現,具體的安裝方法,在前面的文章已經詳細說明,請大家參閱。
  • Deepin+windows雙系統如何安裝?
    目前來看,很多人喜歡安裝雙系統,雙系統可以更好地滿足不同用戶在使用計算機上的需求,可以在llinux系統上做開發,在windows上玩遊戲,兩個系統相輔相成,也是一種很好的辦法 。那麼怎麼在原有windows的基礎上安裝deepin系統呢?
  • Windows上安裝Tensorflow踩的坑
    sess$run(hello)踩過的一號坑——tensorflow在windows上的安裝    在之前的文章中,曾經通過Docker的方法,實現了在windows上安裝tensorflow,感興趣的出門左轉,在公眾號查看「Deep Learning 學習(三)——在window下運行tensorfolw」。
  • 為什麼買了蘋果電腦,卻要安裝Windows系統,原因很現實!
    但是我也發現一個現象:有些人在購買蘋果MacBook以後要求工作人員為他安裝windows系統,而有些人在使用windows系統的時候卻喜歡套用一個Mac系統的主題皮膚。所以,有一種使用windows的人嚮往蘋果電腦而使用蘋果電腦卻認為windows系統更好的假象。怎奈,這山望著那山高,已經成為一種常態。
  • 安裝windows包管理工具chocolatey
    由於在windows上安裝minikube,為了方便起見需要安裝chocolatey管理員權限打開cmd或者powershell,執行如下命令Set-ExecutionPolicySystem.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))安裝中
  • windows和linux下安裝conda
    前言為什麼不出一個在mac下安裝conda和tensorflow的因為我窮呀。超過720個科學軟體包及其依賴項可以使用「conda install」命令從Continuum存儲庫單獨安裝。Anaconda包括conda,conda-build,Python和超過150個自動安裝的科學包及其依賴項。 與Miniconda一樣,可以使用「conda install」命令單獨安裝超過250個額外的科學軟體包。
  • Python3.7源碼在windows(VS2015)下的編譯和安裝
    Python3.7源碼在windows(VS2015)下的編譯和安裝下載官方源碼,使用vs2015(WIN10SDK),最python3.7.0的源碼進行編譯,編譯出不同的版本(release,debug),並配置python的運行環境(環境變量的配置)。
  • Python安裝第三方庫,Windows難安裝模塊要怎麼安裝
    但是有些模塊很容易安裝,但是windows系統有些模塊安裝會報錯。Python包管理工具pip安裝python就已經自帶一個包管理工具,該工具提供了對Python包的查找、下載、安裝、卸載的功能。pip 最常用命令電腦開始菜單搜索cmd或者windows powershell 打開命令窗口。
  • 用Python使用C語言程序(Windows平臺)
    本文的目標是在windows平臺下(使用pycharm),實現python調用C語言編寫的程序。主要參考資料:python擴展實現方法--python與c混和編程(http://www.cnblogs.com/btchenguang/archive/2012/09/04/2670849.html)混合編程:用 C 語言來擴展 Python 大法吧!
  • 小容量Mac用戶必看——蘋果電腦外接硬碟安裝windows教程
    Mac OS系統由於其穩定性以及易用性受到了不少人的追捧和喜愛,但是目前windows系統的佔有率依舊是佔據大頭;有時候難免會遇上Mac系統無法解決的問題需要windows來完成;實際上解決方案也很多,最簡單就是直接在Mac系統下安裝虛擬機直接運行windows系統;同樣Mac os也提供了bootcamp工具允許你的在Mac
  • Windows下通過DockerToolbox安裝Docker
    想要在Windows下安裝Docker,首先需要檢查你當前的windows系統是否符合要求,為了運行Docker,你的機器必須是windows7或以上版本的64位系統。請參考以下文章進行設置:「VT-x is disabled in BIOS」的解決辦法4、對於Windows 10以下的用戶,推薦使用Docker Toolbox;對於Windows 10以上的用戶推薦使用Docker for Windows,我們下載Docker Toolbox,如下圖所示:5、雙擊DockerToolbox-17.03.0-ce.exe安裝包
  • dell inspiron 14R-5437 安裝win7 booting windows 0%什麼意思
    DELL5437裝win7,戴爾靈越14r,14r5437裝win7系統,(可用此法安裝win8.1,win10,XP系統)一、準備事宜:1、U盤和win7系統GHOST文件,系統鏡像下載下載地址:2、下載WinPE u盤裝系統啟動工具:安裝並製作
  • 華為吧windows換成國產linux了你還會安裝回華為系統嗎
    打開APP 華為吧windows換成國產linux了你還會安裝回華為系統嗎 網際網路.亂侃秀 發表於 2019-11-17 10:16:55
  • Python3.6 + OpenCV3.3安裝(windows 10系統)
    Python3.6 + OpenCV3.3安裝(windows 10系統)韭菜學院 / youxuancaijing首先,需要Microsoft Visual C++ 2015 支持,如果安裝過,就跳過。選擇python相對應的版本並安裝。
  • Windows滲透測試工具CommandoVM安裝使用教程
    其二則是2013年發布的Kali Linux繼承了超過600款安全、取證和探索工具,Commando選取了其中適用於Windows平臺的精華工具,其中很多還是Windows平臺原生支持的。而滲透測試人員面臨的第二個問題就是工具集的維護。Commando VM將所有工具打包到一個發行版中可以加快維護速度,修補和更新都更加簡單。
  • 如何在Windows系統安裝最新版本的Node.js
    工具windows作業系統Node.js技術JavaScript在使用vue框架、react框架和angularjs框架時,隨著框架版本不斷更新,對應的Node.js版本也在不斷更新;如果版本不對應,搭建框架的項目就啟動不了。
  • 如何在windows下安裝Python(Python入門教程)
    中找到最新版本的Python安裝包,點擊進行下載,請注意,當你的電腦是32位的機器,請選擇32位的安裝包,如果是64位的,請選擇64位的安裝包;第二步:安裝A.雙擊下載好的安裝包,彈出如下界面:這裡要注意的是,將python加入到
  • Windows 10 Spring更新:默認安裝OpenSSH 最新客戶端
    》中我們提到過window 10 Fall版本中引入了對OpenSSH客戶端的支持,當時都還是beta版本:windows 10 Sping更新現在,隨著windows 10 2018年4月更新的發布,OpenSSH已經成了正式版本,其客戶端在Windows 10中被也默認安裝。
  • 蘋果Mac 官方網站上公開宣稱 Mac 可以安裝 Windows 系統?
    據官方消息透露,蘋果官方Mac電腦將無法使用windows系統。剛聽到這一消息的時候,相信肯定有不少人自己一直用的是windows系統。 而且由於官方Mac電腦。無法使用windows系統。 所以會造成一些老用戶感到懵逼。 有那麼一些不適應。