Solidity编程 二 之Solidity安装

Remix

如果你只是想尝试用solidity编写小的合约,你可以使用Remix, 不需要安装。如果你想使用离线版本,可以到 https://github.com/ethereum/browser-solidity/tree/gh-pages 下载zip文件使用。

Npm/ Node.js

这是最快速,便捷的方式安装本地Solidity.Emscripten提供了一个跨平台的js库,可以把C++的源码编译成JavaScript.当然也可以在项目里直接使用(如Remix)。Solc-js可以通过npm安装:

npm install -g solc

Docker

我们提供了最新的docker编译,stable分支包含了release版本,而每日编译分支可能包含不稳定的代码。

安装命令

docker run ethereum/solc:stable solc --version

  

二进制包

Ubuntu的PPAs,最新的版本

sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc

  

如果你想使用最新的开发版本:

sudo add-apt-repository ppa:ethereum/ethereum
sudo add-apt-repository ppa:ethereum/ethereum-dev
sudo apt-get update
sudo apt-get install solc

  

Arch Linux也有安装包,albeit限制了最新使用版本

pacman -S solidity-git

  

如果你想安装特定版本的Solidity,可以直接通过Github安装Homebrew。地址为:

https://github.com/ethereum/homebrew-ethereum/commits/master/solidity.rb

通过brew安装

brew unlink solidity
# Install 0.4.8
brew install https://raw.githubusercontent.com/ethereum/homebrew-ethereum/77cce03da9f289e5a3ffe579840d3c5dc0a62717/solidity.rb

  

通过源码编译

clone 代码:

   git clone --recursive https://github.com/ethereum/solidity.git
   cd solidity

  

如果你想开发Solidity,可以fork Solidity,添加自己的fork分支来进行开发

cd solidity
git remote add personal [email protected]:[username]/solidity.git

  

Solidity有submodules,确保所有的submodules是被正确加载的。

git submodule update --init --recursive

  

MacOS的要求

需要安装最新的Xcode。如果你是第一次安装Xcode,或是已经安装了最新版本,在使用命令行前,需要进行license授权

sudo xcodebuild -license accept

  

Windows的要求

需要安装Git for Window, CMake,VS2015

我们现在提供了一键安装。使用

./scripts/install_deps.sh

  

或是

scripts\install_deps.bat(在Windows)

  

命令行编译

使用

mkdir build
cd build
cmake .. && make

  

或是更简单的:

#note: this will install binaries solc and soltest at usr/local/bin
./scripts/build.sh

  

在windows系统上:

mkdir build
cd build
cmake -G "Visual Studio 14 2015 Win64" ..

  

或者可以在windows上使用命令行:

cmake --build . --config RelWithDebInfo

  

时间: 2024-11-03 05:35:56

Solidity编程 二 之Solidity安装的相关文章

solidity编程开发语言——以太坊智能合约利器

这篇关于Solidity教程的博客展示了很多Solidity特性.本教程假定你对以太坊虚拟机和编程有一定的了解. 以太坊,"世界计算机"提供了一个非常强大的全球共享基础设施,使用名为Solidity的编程语言构建去中心化应用程序. 让我们开始我们的Solidity教程,介绍Solidity. 什么是Solidity? 以太坊Solidity是一种面向智能合约的高级语言,其语法与JavaScript类似.solidity是用于生成在EVM上执行的机器级代码的工具.solidity编译器获

Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016

Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 Python黑帽编程1.1虚拟机安装和配置 Kali Linux 2016 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and Defense with Python>一书,为了解决很多同学对英文书的恐惧,解决看书之后实战过程中遇到的问题而作.由于原书很多地方过于简略,笔者根据实际测试情况和最新的技术发展对内容做了大量的变更,当然最重要的

Ubuntu12.04 之 CUDA 编程 (二) ~~~ GPU 程序加速

关于 Ubuntu12.04 下 CUDA5.5 的安装请参看如下链接 Ubuntu-12.04 安装 CUDA-5.5 关于 Ubuntu12.04 下 CUDA5.5 程序的运行请参看如下链接 Ubuntu12.04 之 CUDA 编程 (一) --- GPU 运行程序 1.程序的并行化 前一篇文章讲到了如何利用 CUDA5.5 在 GPU 中运行一个程序.通过程序的运行,我们看到了 GPU 确实可以作为一个运算器,但是,我们在前面的例子中并没有正真的发挥 GPU 并行处理程序的能力,也就是

PL/SQL 编程(二)

1    For循环 语法:begin for i in reverse 1..10 loop insert into users values(i,'奥巴马'): end loop: end; 注意:循环变量 i 是隐含增加的,所以无法看到 2    goto语句 goto 语句用于跳转到特定的位置去执行语句.由于goto语句会减少程序的可读性,所以一般情况下 不建议使用goto语句 3    null语句 null语句不会执行任何操作,但是可以增加程序的可读性 4    创建返回值是一个结果

Win32 Windows编程 二

一.第一个窗口程序 1  入口函数 WinMain 2  窗口处理函数 LRESULT CALLBACK WndProc( HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam ) { return DefWindowProc( hWnd, nMsg, wParam, lParam ); } 当窗口处理消息事件时 调用该函数 LRESULT CALLBACK WndProc( HWND hWnd, UINT nMsg, WPARAM wParam,

Tomcat学习之二:tomcat安装、配置及目录文件说明

我们看到tomcat目录/bin文件夹里有个tomcat6w.exe,顾名思义就是tomcat以window方式显示控制台.第1次点击打开它时候,可能会提示:tomcat指定的服务未安装,此时我们可以这样解决它. 打开命令行提示符窗口-> 进入Tomcat安装目录-> 进入bin目录下-> 输入:service.bat install 即可,如图操作,tomcat目录按自己电脑上的来即可 <!--[endif]--> 这样就可以让tomcat以window方式显示控制台.点击

Linux网络编程(二)

服务套和客户机的信息函数 1.字节转换函数 在网络上面有着许多类型的机器,这些机器在表示数据的字节顺序是不同的, 比如i386芯片是低字节在内存地址的低端,高字节在高端,而alpha芯片却相反. 为了统一起来,在Linux下面,有专门的字节转换函数. unsigned long int htonl(unsigned long int hostlong)     unsigned short int htons(unisgned short int hostshort)     unsigned

js面对对象编程(二):属性和闭包

上篇博客中讲解了一些js对象的基本概念和用法,这篇博客讲解一下js属性方面的:公有属性,私有属性,特权方法. 如果学过java,公有属性,私有属性,特权方法(即可以访问和设置私有属性的方法)一定很熟悉,那么让我们来看看在js里如何实现呢? 1.公有属性 首先看公有的第一层意思是可以被大家所访问的,对外开放的属性,是相对于私有属性而言的: function Person(name,age){ this.name=name; this.age=age; this.getName=function()

Linux命令:Mysql系列之二cmake编译安装使用mysqladmin管理工具

MySQL相关概念:MySQL是单进程多线程接收应用的请求. SQL/MySQL 1.事务,隔离,并发控制,锁 2.用户和权限 3.监控 STATUS 4.索引类型:查询 VARIABLES 5.备份和恢复 6.复制功能 7.集群 DML:数据操作语言 INSERT:插入 DELETE:删除 SELECT:挑选,选择,查询 UPDATE:更新,修改 DDL:数据定义语言 CREATE:创建 DROP:删除 ALTER:修改 DCL:数据控制语言 GRANT:授权 REVOKE:取消权限 MySQ