首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows 8上安装Solc编译器

在Windows 8上安装Solc编译器
EN

Ethereum用户
提问于 2017-01-03 10:08:46
回答 2查看 3.4K关注 0票数 5

我需要一个命令行编译器,以便使专家系统能够自动构建、测试和部署仅基于元数据的智能契约系统。几天来,我一直试图安装solc,但没有成功。我承认,我只有一般的智力,但我认为以太的意义在于增强普通人的能力。它不应该这么复杂,除非复杂性的要点是限制在给定的时间内解决难题的人的数量。感觉好像我在做工作的证据。

到目前为止,我尝试过的所有东西(NPM)都有文档记录,但是在我在这里发布所有内容之前,我想知道是否有其他编译器可以在自动化过程中使用,或者是否有其他方法安装solc,或者可能从源代码构建它。如果从源代码构建是一个选项,我将需要一个教程,因为我没有经验的C++。我确实在我的机器上安装了Visual,如果这有帮助的话。

简单地说,我尝试过在本地和全球范围内安装NPM,并且尝试过geth --solc pathadmin.setSolc('path')。无论如何,我不认为定义路径是我的问题,因为在NPM安装之后,我的计算机上没有安装任何位置的solc.exe --只有一个solc目录中填充了solcjs文件。

任何想法都将不胜感激,约翰

顺便提一句,我很难创建一个本地的区块链,我也很难找到学习资源。为此,我做了一个在GitHub上找到的教程,它应该得到另一个像我一样的菜鸟,并在短时间内运行。您可以从教程中剪切和粘贴代码以启动本地块链,并对最有用的资源进行索引。我将继续编制索引,以使其更加明确,并在找到新资源时添加新资源。如果我能找到如何安装solc,我将写一些类似的东西,这样下一个人就可以有一个更轻松的时间。

再次谢谢你,约翰

大家好,现在是一天后,我已经解决了一些这个问题。

命令npm install solcnpm install -g solc实际上都不安装solc。这些命令为solc安装JavaScript绑定。

看看solc的NPM页面。这是非常误导性的-- solc在最上面的大字母中说。但下面是两个链接,我认为solc和被发现。

链接被复制为这里这里

问题是,我不知道如何从这两个GitHub页面中的任何一个安装solc,所以我甚至没有认出它们是可以获得solc的地方。我还是不知道该怎么处理这些书页。

不用担心,在谷歌上搜索了几个小时之后,我找到了这一页有一张名为“白痴村”的大图片。我希望这是某种内在的笑话,而不是对像我这样的普通人寻求帮助的侮辱。无论如何,在这个页面上是一个可执行文件的发行版,它安装solc以及Mix、AlethZero、geth和eth。

现在,如果使用以下选项--solc "C:\Program Files\cpp-ethereum\solc"启动Geth,则可以在控制台中键入eth.getCompilers(),并将坚固性作为返回的结果。

另外,我可以在不使用solc选项的情况下启动geth,当我想使用编译器时,可以在JavaScript控制台中键入以下命令。

admin.setSolc('C:\\\Program Files\\\cpp-ethereum\\\solc')

注意,JavaScript控制台要求在通常只有一个斜杠的地方使用三个斜杠。我在Stack上读到,这是因为斜杠是JavaScript中的转义字符。还要注意,在这种情况下,路径周围需要一个单引号或双引号,因为路径中的单词"Program“和"Files”之间有一个空格。

我还没有试着编译任何东西。如果有麻烦,我会向你汇报的。

同时,如果有人告诉我如何从下面的页面( 这里这里 )安装solc,我将不胜感激。我需要知道,因为村庄白痴页上的版本是从六月开始的,我不认为这个页面已经被支持了。

再次谢谢你,约翰

EN

回答 2

Ethereum用户

回答已采纳

发布于 2017-01-03 13:33:32

一个相对容易的解决方案是安装node.js并使用solc包。当我开始玩时,我自己就使用了它,这是一个简单的设置。

这是台阶-

  • 安装最新版本的node.js
  • 为项目创建一个文件夹
  • 将solc包添加到您的package.json文件中,或者使用以下包文件:{“名称”:"eth_compiler“、”版本“:"0.0.1”、“引擎”:{ ">=7.0.0“、"npm":"^3.0.0”}、“依赖关系”:{ "solc":"^0.4.7“}}
  • 在文件夹中运行npm安装
  • 向文件夹(compile.js)添加一个小的js脚本-它将接收契约文件名并输出所需的abi/code文件。

这里有个例子-

代码语言:javascript
复制
var solc = require('solc');
var fs = require('fs');

var inputFilePath = process.argv[2];
var outputPath = process.argv[3];

// note - using the synchronous version of the file system functions for simplicity and because the async version isn't really needed in this case
var contractSolidity = fs.readFileSync(inputFilePath , 'utf-8');
if (!contractSolidity)
    return console.error('unable to read file: ' + inputFilePath );

var output = solc.compile(contractSolidity, 1);
for (var contractName in output.contracts) {
    var abi = output.contracts[contractName].interface;
    var code = output.contracts[contractName].bytecode;
    fs.writeFileSync(outputPath + '/' + contractName + '.abi', abi, 'utf-8');
    fs.writeFileSync(outputPath + '/' + contractName + '.code', code, 'utf-8');
}
  • 拥有该文件后,可以在新文件夹-节点编译inputFilePath中执行以下命令

它应该生成编译后的文件。

注意:我确实在本地测试了它,并成功地编译了一份合同,所以我认为它应该能工作,但是值得一提的是,我的机器上安装了双方&cpp(奇偶校验在此脚本执行时没有运行)。

票数 3
EN

Ethereum用户

发布于 2017-02-22 04:17:52

这个问题已经被标记出来了,但为了完整起见,我只想补充几个细节。

1.您可以从他们的github页面https://github.com/ethereum/solidity/releases下载solidity可执行文件

  1. 将可执行文件添加到类路径中。
  2. 确保安装了Visual (我建议2015年)。
  3. 将可执行文件添加到类路径后,打开CLI并键入solc -version。这将为您提供安装的稳固编译器版本。
  4. 现在开始吧。您不需要启用管理模块。因为admin.setSolc('')不是必需的。
  5. 你甚至不需要在你的“geth start”命令中添加-solc参数。盖斯会从你的系统路径上捡到它。
  6. 一旦启动,请检查编译器。eth.getCompilers() “稳固”

或者,您可以使用solc Npm包(IMHO次之)。或者,如果你想成为一个贡献者,你可以从源头建立稳固。这需要Cmake、git和Visual。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/11081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档