求助配置问题,win10下msys编译openssl提示 'ERROR_INSUFFICIENT_BUFFER' undeclared

a4g 发布于 2018/03/14 16:38
阅读 952
收藏 0

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

C/C++萌新求助。

按youtube教程按步骤安装所需的软件和配置path后

在msys 尝试 对 openssl 1.0.2k/n  执行以下编译命令

./config

make

得到报错

$ make
making all in crypto...
make[1]: Entering directory `/c/Deps/openssl-1.0.2k/crypto'
perl ../util/mkbuildinf.pl "gcc -I. -I.. -I../include  -DOPENSSL_THREADS -D_MT -DDSO_WIN32 -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer -O3 -march=i486 -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM" "mingw" >buildinf.h
gcc -I. -I.. -I../include  -DOPENSSL_THREADS -D_MT -DDSO_WIN32 -DL_ENDIAN -DWIN32_LEAN_AND_MEAN -fomit-frame-pointer -O3 -march=i486 -Wall -DOPENSSL_BN_ASM_PART_WORDS -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DRMD160_ASM -DAES_ASM -DVPAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM   -c -o cryptlib.o cryptlib.c
cryptlib.c: In function 'OPENSSL_isservice':
cryptlib.c:833:27: error: 'ERROR_INSUFFICIENT_BUFFER' undeclared (first use in this function)
         GetLastError() != ERROR_INSUFFICIENT_BUFFER)
                           ^~~~~~~~~~~~~~~~~~~~~~~~~
cryptlib.c:833:27: note: each undeclared identifier is reported only once for each function it appears in
make[1]: *** [cryptlib.o] Error 1
make[1]: Leaving directory `/c/Deps/openssl-1.0.2k/crypto'
make: *** [build_crypto] Error 1

 

msys下查看perl及gcc版本如下图

 

按我粗浅的理解,字面意思是说 ERROR_INSUFFICIENT_BUFFER 这个常量未被定义,检查openssl 源码内只有1处出现。

应该是引用自 mingw路径下 include/winerror.h 内, 但不知什么原因可能是编译配置或mingw的原因未引用在内,已确认mingw路径下的 .h内存在这个定义见下截图

 

【环境】

win10 64位

perl v5.18.1

gcc.exe (MinGW.org GCC-6.3.0-1) 6.3.0

openssl 源码 1.0.2k

path配置如下图

 

加载中
0
耐心的走好每一步
耐心的走好每一步

<p>直接</p>

<pre>
<code>#  include &lt;winerror.h&gt;</code></pre>

<p>就可以了。</p>
 

0
l
llccff

cryptlib直接加上#include <winerror.h>。

返回顶部
顶部