2009-08-05 5 views
1

Ich versuche, die oauth-utils http://mir.dnsalias.com/oss/oauth/start für Windows von Ubuntu zu kompilieren. Ich habe es unter Windows vor (vor ein paar Monaten) kompiliert, wollte aber Cross-Compiling versuchen.Cross-kompilieren mit OpenSSL für Windows

Ich habe openssl bauen mit mingw32 ok, und setzen libssl.a und libcrypto.a an der richtigen Stelle. Der Linker ist jetzt die Bibliotheken zu finden (yay!), Aber ich bekomme die folgende Fehlermeldung:

/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 
/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 `[email protected]' 

Irgendwelche Ideen, was dieses verursachen könnte?

Danke. zwischen

static void readscreen(void) 
{ 
#if !defined(OPENSSL_SYS_WINCE) && !defined(OPENSSL_SYS_WIN32_CYGWIN) 

und

#endif /* !OPENSSL_SYS_WINCE */ 
} 

in rand_win.c

Antwort

1

Es scheint, dass, wenn man alles entfernen, das Gebäude funktioniert. Ich bin mir nicht 100% sicher, wie sicher das Entfernen ist.

1

Fügen Sie Ihrem Linkbefehl -mwindows hinzu?

4

Verbindung mit Gdi32.lib

+0

Diese feste Verknüpfung zu openssl für mich in mingw! Keine Notwendigkeit, etwas in rand_win.c zu ändern, was die aktuell akzeptierte Antwort ist. – Daverix

+0

Danke! Außerdem wurden ähnliche Verknüpfungsfehler mit libcrypto und dem CommonCrypto-Framework in Cocotron behoben – xverges

2

Welche Version von OpenSSL versuchen Sie zu kompilieren? Im Allgemeinen habe ich Version 1.0 und neuer mit MinGW-w64 gefunden, um großartig zu arbeiten. Siehe zum Beispiel das OpenSSL cross-compilation for Windows Tutorial.