windows - 使用适用于 Windows 的 OpenSSL 进行交叉编译

标签 windows openssl mingw cross-compiling

我正在尝试编译 oauth-utils http://mir.dnsalias.com/oss/oauth/start 适用于 Ubuntu 的 Windows。我之前在Windows上编译过 (几个月前),但想尝试交叉编译。

我使用 mingw32 构建了 openssl ok,然后放 libssl.a 和 libcrypto.a 在正确的位置。链接器现在 找到库(耶!)但我收到以下错误:

/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xaac): undefined reference to `_CreateDCA@16'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xab9): undefined reference to `_CreateCompatibleDC@4'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xacc): undefined reference to `_GetDeviceCaps@8'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xadc): undefined reference to `_GetDeviceCaps@8'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xaf4): undefined reference to `_CreateCompatibleBitmap@12'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xb04): undefined reference to `_SelectObject@8'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xb18): undefined reference to `_GetObjectA@12'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xb81): undefined reference to `_BitBlt@36'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xb8c): undefined reference to `_GetBitmapBits@12'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xbe5): undefined reference to `_SelectObject@8'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xbec): undefined reference to `_DeleteObject@4'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xbf6): undefined reference to `_DeleteDC@4'
/usr/lib/gcc/i586-mingw32msvc/4.2.1-sjlj/../../../../i586-mingw32msvc/lib/libcrypto.a(rand_win.o):rand_win.c:(.text+0xc00): undefined reference to `_DeleteDC@4'

知道是什么原因造成的吗?

谢谢。

最佳答案

与 Gdi32.lib 的链接

关于windows - 使用适用于 Windows 的 OpenSSL 进行交叉编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1234558/

相关文章:

c++ - windows.h 的 Beep() 的更快替代品

c++ - 使用 std::ifstream 而不是文件缓存强制读取磁盘

ssl - 使用证书签署 exe

openssl - 如何在 opensl 中打印 BIO 对象或从 ASN1_TYPE 对象打印时间

c++ - 使用 MinGW 在 C++ 中生成异常堆栈跟踪

c++ - 输入后我的程序似乎跳过了第一个 IF 语句并直接转到 ELSE

windows - 如果它在 Windows 中崩溃,如何自动重启程序?

python - 如何在Python客户端服务器套接字编程之间实现SSL连接

ffmpeg - 未知操作系统 'msys_nt-6.1'。在 win7 64 位上使用 Mingw

mingw - MinGW 中的 libvpx : Bad file number