C:\>path
PATH=C:\Qt\2010.02\qt\bin;C:\Qt\2010.02\mingw\bin;C:\OpenSSL\bin;C:\Program Files\SlikSvn\bin;C:\Program Files\TortoiseSVN\bin;C:\Qt\QConf;C:\strawberry\c\bin;C:\strawberry\perl\bin;C:\strawberry\perl\site\bin;C:\Program Files\Git\bin
und erzeugen Sie diese neuen Umgebungsvariablen ( mit Ihrem Pfad!):
QMAKESPEC=win32-g++ QTDIR=C:\Qt\2010.02\qt OPENSSLDir=C:\OpenSSL
Anmerkung: die neuen variablen sind nur für neu gestartete Prozesse gültig, d.h. Sie müssen cmd als Administrator neu starten (Notfalls das System neu starten!).
C:\>qmake -v QMake version 2.01a Using Qt version 4.6.2 in C:/Qt/2010.02/qt/lib
C:\>echo %QMAKESPEC% win32-g++
C:\Qt\2010.02\qt\examples\tutorials>qmake C:\Qt\2010.02\qt\examples\tutorials>mingw32-make ................... g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -DQT_NEEDS _QMAIN -I'../../../../include/QtCore' -I'../../../../include/QtGui' -I'../../../ ../include' -I'../../../../include/ActiveQt' -I'tmp/moc/release_shared' -I'../.. /../../mkspecs/win32-g++' -o tmp/obj/release_shared/moc_finddialog.o tmp/moc/rel ease_shared/moc_finddialog.cpp g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc -Wl,-s -mthreads -Wl -Wl,-subsystem,windows -o release/part7.exe tmp/obj/rele ase_shared/addressbook.o tmp/obj/release_shared/finddialog.o tmp/obj/release_sha red/main.o tmp/obj/release_shared/moc_addressbook.o tmp/obj/release_shared/moc_f inddialog.o -L'c:/Qt/2010.02/qt/lib' -L'c:/Qt/2010.02/qt/lib' -lmingw32 -lqtmai n -lQtGui4 -lQtCore4 mingw32-make[3]: Leaving directory `c:/Qt/2010.02/qt/examples/tutorials/addressb ook/part7' mingw32-make[2]: Leaving directory `c:/Qt/2010.02/qt/examples/tutorials/addressb ook/part7' mingw32-make[1]: Leaving directory `c:/Qt/2010.02/qt/examples/tutorials/addressb ook'
Das Resultat des Bauprozesses steht in dem Verzeichnis C:\Qt\2010.02\qt\examples\tutorials\addressbook\part7\release
Ein erfolgreicher Bauprozess bedeutet, dass Qt korrekt installiert wurde und einsatzbereit ist.
von
#ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION # define OPENSSL_IMPLEMENT_GLOBAL(type,name) \
zu
#ifdef NEVER_OPENSSL_EXPORT_VAR_AS_FUNCTION # define OPENSSL_IMPLEMENT_GLOBAL(type,name) \
C:\OpenSSL>ms\mingw32 ........................................... gcc -o tmp\prime.o -DMONOLITH -Ioutinc -Itmp -DL_ENDIAN -DDSO_WIN32 -fomit-frame -pointer -O3 -march=i486 -Wall -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PA RT_WORDS -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_M DC2 -DOPENSSL_NO_CMS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_KRB5 - DOPENSSL_NO_DYNAMIC_ENGINE -c .\apps\prime.c gcc -o tmp\cms.o -DMONOLITH -Ioutinc -Itmp -DL_ENDIAN -DDSO_WIN32 -fomit-frame-p ointer -O3 -march=i486 -Wall -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_PART _WORDS -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO_MDC 2 -DOPENSSL_NO_CMS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_KRB5 -DO PENSSL_NO_DYNAMIC_ENGINE -c .\apps\cms.c gcc -o tmp\openssl.o -DMONOLITH -Ioutinc -Itmp -DL_ENDIAN -DDSO_WIN32 -fomit-fra me-pointer -O3 -march=i486 -Wall -DBN_ASM -DMD5_ASM -DSHA1_ASM -DOPENSSL_BN_ASM_ PART_WORDS -DOPENSSL_NO_CAMELLIA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC5 -DOPENSSL_NO _MDC2 -DOPENSSL_NO_CMS -DOPENSSL_NO_JPAKE -DOPENSSL_NO_CAPIENG -DOPENSSL_NO_KRB5 -DOPENSSL_NO_DYNAMIC_ENGINE -c .\apps\openssl.c gcc -o out\openssl tmp\verify.o tmp\asn1pars.o tmp\req.o tmp\dgst.o tmp\dh.o tm p\dhparam.o tmp\enc.o tmp\passwd.o tmp\gendh.o tmp\errstr.o tmp\ca.o tmp\pkcs7.o tmp\crl2p7.o tmp\crl.o tmp\rsa.o tmp\rsautl.o tmp\dsa.o tmp\dsaparam.o tmp\ec.o tmp\ecparam.o tmp\x509.o tmp\genrsa.o tmp\gendsa.o tmp\s_server.o tmp\s_client. o tmp\speed.o tmp\s_time.o tmp\apps.o tmp\s_cb.o tmp\s_socket.o tmp\app_rand.o t mp\version.o tmp\sess_id.o tmp\ciphers.o tmp\nseq.o tmp\pkcs12.o tmp\pkcs8.o tmp \spkac.o tmp\smime.o tmp\rand.o tmp\engine.o tmp\ocsp.o tmp\prime.o tmp\cms.o tm p\openssl.o out\libssl.a out\libcrypto.a -lwsock32 -lgdi32 Generating the DLLs and input libraries Done compiling OpenSSL
Das Ergebnis des Builds finden Sie im Ordner gefunden werden *C:\OpenSSL*. Es gibt Bibliotheken kompiliert *libeay32.dll*, *libssl32.dll* und andere binäre Dateien im Ordner *C:\OpenSSL\out*.
Die OpenSSL ist jetzt für die Verknüpfung mit dem Psi + ready.
Wenn das Skript fehlerfrei ab lief, erscheint in C:\psi-plus\build das kompilierte und einsatzbereite Programm psi-plus.exe
git clone git://git.psi-im.org/psi.git cd psi git submodule init git submodule update
Diese lautete
#CONFIG += qca-static
und wird zu
CONFIG += qca-static
Diese lautete
#DEFINES += HAVE_ASPELL
und wird zu
DEFINES += HAVE_ASPELL
Diese lautete
#CONFIG += psi_plugins
und wird zu
CONFIG += psi_plugins
CONFIG += release
nach
CONFIG += debug
CONFIG += console
CONFIG += webkit
Bevor Sie GNU/Patch für Windows benutzen, beachten Sie bitte folgendes:
Unter MS-Windows muss die Patchdatei eine Textdatei sein, d.h. das Zeilenende-Zeichen muss CR-LF sein. Eine Datei mit LF führt zu der Fehlermeldung: “Assertion failed, hunk, file patch.c, line 343,” unless the option ‘–binary’ is given.
patch -p1 < 0000-psiplus-aboutdlg.diff patch -p1 < 0010-less-includes.diff patch -p1 < 0020-psi-iconsets.diff patch -p1 < 0030-psi-webkit.diff patch -p1 < 0040-psi-muc-topic.diff patch -p1 < 0050-psi-receipts.diff patch -p1 < 0060-psi-popup-avatar.diff patch -p1 < 0070-psi-entity-time.diff patch -p1 < 0080-psi-mood-icons.diff patch -p1 < 0090-psi-muc-change-affiliation.diff .....................
Anmerkung: Bevor Sie Patches herunterladen und anbringen, überprüfen Sie unbedingt den Dateinamen anhand der aktuellen Liste.
Nach einiger Zeit (10 - 40 Minuten) suchen Sie nach dem Ergebnis der Kompilation psi.exe im Verzeichnis psi-git/src/release.
Anmerkung: Die Dateigröße von psi.exe kann unterschiedlich sein (Hängt von der debug/release Konfiguration ab):
Als Beispiel betrachten wir die Kompilation des folgenden Plugins.
Anmerkung: Für korrektes Kompilieren der Plugins müssen Sie zunächst den Psi Quellcode herunterladen und die Patches anbringen.
C:\psi-plus\build\psi\src\plugins\generic\conferenceloggerplugin>qmake conferenceloggerplugin.pro C:\psi-plus\build\psi\src\plugins\generic\conferenceloggerplugin>mingw32-make -f makefile.release ................... C:/Qt/2010.02/qt/bin/moc.exe -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_D EBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_THREAD_SUPPORT -I' c:/Qt/2010.02/qt/include/QtCore' -I'c:/Qt/2010.02/qt/include/QtGui' -I'c:/Qt/201 0.02/qt/include/QtXml' -I'c:/Qt/2010.02/qt/include' -I'../../include' -I'c:/Qt/2 010.02/qt/include/ActiveQt' -I'release' -I'c:/Qt/2010.02/qt/mkspecs/win32-g++' - D__GNUC__ -DWIN32 typeaheadfind.h -o release/moc_typeaheadfind.cpp g++ -c -O2 -frtti -fexceptions -mthreads -Wall -DUNICODE -DQT_LARGEFILE_SUPPORT -DQT_DLL -DQT_NO_DEBUG -DQT_PLUGIN -DQT_XML_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_ THREAD_SUPPORT -I'c:/Qt/2010.02/qt/include/QtCore' -I'c:/Qt/2010.02/qt/include/Q tGui' -I'c:/Qt/2010.02/qt/include/QtXml' -I'c:/Qt/2010.02/qt/include' -I'../../i nclude' -I'c:/Qt/2010.02/qt/include/ActiveQt' -I'release' -I'c:/Qt/2010.02/qt/mk specs/win32-g++' -o release/moc_typeaheadfind.o release/moc_typeaheadfind.cpp g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,release/libconferenceloggerplug in.a -o release/conferenceloggerplugin.dll release/conferenceloggerplugin.o rele ase/typeaheadfind.o release/moc_typeaheadfind.o -L'c:/Qt/2010.02/qt/lib' -lQtXm l4 -lQtGui4 -lQtCore4 Creating library file: release/libconferenceloggerplugin.a