在openssl中使用cygwin和mingw的未定义引用`_WinMain @ 16'

时间:2012-04-11 09:00:55

标签: cygwin openssl mingw winmain

我有点在这里与OpenSSL斗争。我下载了当前版本1.0.1,编译本身也可以。我甚至可以打电话给./apps/openssl.exe。但当我进入链接过程时,链接器抱怨:

/usr/i686-pc-mingw32/sys-root/mingw/lib/libmingw32.a(main.o): In function `main':
/usr/src/mingw-runtime/mingw-runtime-3.20-1/src/mingwrt-3.20-mingw32/main.c:73: undefined reference to `_WinMain@16'

(如果我在cygwin中使用mingw,则cygwin本身会出现同样的错误) 这是cygwin错误:

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../libcygwin.a(libcmain.o):(.text+0xba): undefined reference to `_WinMain@16'

现在我发现这意味着它找不到主要功能,但实际上并不是这样,可以吗?我的意思是openssl有它的主要功能。关于mingw:我找不到它提到的那个文件,所以可能会出现错误,但libcygwin.a确实存在(虽然我不知道如何判断它是否有主函数)。

所以基本上我问:为什么只有在我不添加main函数时才会出现此错误。我错过了什么吗?

编辑:很抱歉错过了:我在Win 7 x64 Enterprise

1 个答案:

答案 0 :(得分:2)

this for a solution。步骤总结如下:

  1. 使用msys tools 7-zip解包.tar。

  2. 使用tar -xzf openssl-x.y.z.tar,其中x.y.z表示您的版本。

  3. 然后运行命令,它就像魅力一样。