需要通过solc在命令行编译合约,总结如下:
1、单一文件编译
solc.exe --combined-json abi,bin,interface,metadata file1.sol
2、文件有import,但是位于同一目录,同单一文件编译
solc.exe --combined-json abi,bin,interface,metadata file2.sol
3、文件有import,但是位于父目录
solc.exe --combined-json abi,bin,interface,metadata --allow-paths D:\solidity D:\solidity\foo\file3.sol
这个必须写全路径,否则编译会出现找不到的情况
示例:
D:\SOLIDITY
└─ file1.sol
└─ file2.sol
└─foo
└─file3.sol
file1.sol:
pragma solidity ^0.4.7;
contract test1 {
address owner;
function test() constant returns (uint) {
return 1;
}
}
file2.sol:
pragma solidity ^0.4.7;
import "./file1.sol";
contract test2 is test1 {
}
file3.sol:
pragma solidity ^0.4.7;
import "../file1.sol";
contract test3 is test1 {
}
网友评论