2016-08-01 197 views
1

问题

当手动或使用PIP我得到相同类型的错误安装pyethash:无法编译需要C99编译器(AFAIU)的pyethash python包。错误 - 无法打开包含文件: 'alloca.h'

fatal error C1083: Cannot open include file: 'alloca.h': No such file or directory error: command 'C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe' failed with exit status 2

相关和已经尝试过:

类似的问题没有答案:

其他事实:

  • 成功安装加密和scrypt需要C++编译器。
  • 有在pyethash core.c源文件头提到的另外3个文件,这是我的硬盘上的任何地方缺席:
    • alloca.h
    • stdint.h
    • stdlib.h中

系统

蟒2.7.11(v2.7.11:6d1b6a68f775,2015年12月5日,二十时四十分30秒)[MSC V.1 500 64位(AMD64),Windows 8.1中的x64

... \ ethash主>蟒蛇的setup.py安装

PS C:\pyethereum\ethash-master> python setup.py install 
running install 
running build 
running build_ext 
building 'pyethash' extension 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -IC:\Python2 
7\include -IC:\Python27\PC /Tcsrc/python/core.c /Fobuild\temp.win-amd64-2.7\Release\src/python/core.obj -Isrc/ -std=gnu9 
9 -Wall 
cl : Command line warning D9002 : ignoring unknown option '-std=gnu99' 
core.c 
c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(81) : warning C4820: 'Pre 
Attribute' : '4' bytes padding added after data member 'Access' 
c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(96) : warning C4820: 'Pre 
Attribute' : '4' bytes padding added after data member 'NullTerminated' 
c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(112) : warning C4820: 'Po 
stAttribute' : '4' bytes padding added after data member 'Access' 
c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(191) : warning C4820: 'Pr 
eRangeAttribute' : '4' bytes padding added after data member 'Deref' 
c:\program files (x86)\microsoft visual studio 9.0\vc\include\codeanalysis\sourceannotations.h(203) : warning C4820: 'Po 
stRangeAttribute' : '4' bytes padding added after data member 'Deref' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\io.h(60) : warning C4820: '_finddata32i64_t' : '4' bytes p 
adding added after data member 'name' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\io.h(64) : warning C4820: '_finddata64i32_t' : '4' bytes p 
adding added after data member 'attrib' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\io.h(73) : warning C4820: '__finddata64_t' : '4' bytes pad 
ding added after data member 'attrib' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\io.h(78) : warning C4820: '__finddata64_t' : '4' bytes pad 
ding added after data member 'name' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\io.h(126) : warning C4820: '_wfinddata64i32_t' : '4' bytes 
padding added after data member 'attrib' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\io.h(131) : warning C4820: '_wfinddata64i32_t' : '4' bytes 
padding added after data member 'name' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\io.h(135) : warning C4820: '_wfinddata64_t' : '4' bytes pa 
dding added after data member 'attrib' 
C:\Program Files\Microsoft SDKs\Windows\v7.0\include\basetsd.h(114) : warning C4668: '__midl' is not defined as a prepro 
cessor macro, replacing with '0' for '#if/#elif' 
C:\Program Files\Microsoft SDKs\Windows\v7.0\include\basetsd.h(424) : warning C4668: '_WIN32_WINNT' is not defined as a 
preprocessor macro, replacing with '0' for '#if/#elif' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(62) : warning C4820: '_iobuf' : '4' bytes padding 
added after data member '_cnt' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\stdio.h(381) : warning C4255: '_get_printf_count_output' : 
no function prototype given: converting '()' to '(void)' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\stdlib.h(215) : warning C4255: '_get_purecall_handler' : n 
o function prototype given: converting '()' to '(void)' 
c:\python27\include\pyport.h(206) : warning C4668: 'SIZEOF_PID_T' is not defined as a preprocessor macro, replacing with 
'0' for '#if/#elif' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\math.h(41) : warning C4820: '_exception' : '4' bytes paddi 
ng added after data member 'type' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\sys/stat.h(111) : warning C4820: '_stat32' : '2' bytes pad 
ding added after data member 'st_gid' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\sys/stat.h(127) : warning C4820: 'stat' : '2' bytes paddin 
g added after data member 'st_gid' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\sys/stat.h(143) : warning C4820: '_stat32i64' : '2' bytes 
padding added after data member 'st_gid' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\sys/stat.h(144) : warning C4820: '_stat32i64' : '4' bytes 
padding added after data member 'st_rdev' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\sys/stat.h(148) : warning C4820: '_stat32i64' : '4' bytes 
padding added after data member 'st_ctime' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\sys/stat.h(157) : warning C4820: '_stat64i32' : '2' bytes 
padding added after data member 'st_gid' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\sys/stat.h(171) : warning C4820: '_stat64' : '2' bytes pad 
ding added after data member 'st_gid' 
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\sys/stat.h(172) : warning C4820: '_stat64' : '4' bytes pad 
ding added after data member 'st_rdev' 
c:\python27\include\object.h(358) : warning C4820: '_typeobject' : '4' bytes padding added after data member 'tp_flags' 
c:\python27\include\object.h(411) : warning C4820: '_typeobject' : '4' bytes padding added after data member 'tp_version 
_tag' 
c:\python27\include\unicodeobject.h(420) : warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member 'h 
ash' 
c:\python27\include\intobject.h(26) : warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member 'ob_iva 
l' 
c:\python27\include\stringobject.h(49) : warning C4820: '<unnamed-tag>' : '7' bytes padding added after data member 'ob_ 
sval' 
c:\python27\include\bytearrayobject.h(26) : warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member ' 
ob_exports' 
c:\python27\include\setobject.h(26) : warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member 'hash' 
c:\python27\include\setobject.h(56) : warning C4820: '_setobject' : '4' bytes padding added after data member 'hash' 
c:\python27\include\methodobject.h(42) : warning C4820: 'PyMethodDef' : '4' bytes padding added after data member 'ml_fl 
ags' 
c:\python27\include\fileobject.h(26) : warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member 'f_ski 
pnextlf' 
c:\python27\include\fileobject.h(33) : warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member 'writa 
ble' 
c:\python27\include\genobject.h(23) : warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member 'gi_run 
ning' 
c:\python27\include\descrobject.h(28) : warning C4820: 'wrapperbase' : '4' bytes padding added after data member 'offset 
' 
c:\python27\include\descrobject.h(32) : warning C4820: 'wrapperbase' : '4' bytes padding added after data member 'flags' 

c:\python27\include\weakrefobject.h(37) : warning C4820: '_PyWeakReference' : '4' bytes padding added after data member 
'hash' 
c:\python27\include\pystate.h(70) : warning C4820: '_ts' : '4' bytes padding added after data member 'use_tracing' 
c:\python27\include\import.h(61) : warning C4820: '_frozen' : '4' bytes padding added after data member 'size' 
c:\python27\include\code.h(26) : warning C4820: '<unnamed-tag>' : '4' bytes padding added after data member 'co_firstlin 
eno' 
src/python/core.c(2) : fatal error C1083: Cannot open include file: 'alloca.h': No such file or directory 
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\BIN\\amd64\\cl.exe' failed with exit status 2 

问题

我如何编译这个包? (请帮帮忙,这是第4天了!)

+1

''和'stdlib.h'是标准的C库头文件。应该在任何声称拥有C编译器的系统上找到它们。 'alloca.h'没有任何标准,既没有C99也没有POSIX,但是经常在POSIX系统上找到。它的功能被C99的可变长度数组取代,所以我不认为C99是你的问题。我个人不会相信任何使用它的软件。 –

回答

0

alloca页头一个 utomatic存储器和延Gustedt指出的不规范。

MSVCRT在<malloc.h> header中声明它。它在Windows上的实现与UNIX系统上的常见行为一致,因此它应该按预期工作。代码的其他部分可能与UNIX更紧密地耦合,可能需要重写。

另外两个头文件是标准C头文件,应该在您的编译器自动搜索的INCLUDE目录中。