Seite 1 von 1

[SLOVED] QCA - Installation Unix-Platform

Verfasst: 27. März 2008 11:59
von jd
Hallo Gemeinde,

ich entwickle auf Debian - SID.

Ich habe mir die QCA-Library runtergeladen und installiert.
Die installation klappt wunderbar und die Library kann auch verwendet werden. Nun habe ich aber das Problem. Um die QCA-Library zu installieren habe ich noch ein paar andere Sachen benötigt:
Configuring qca-ossl ...
Verifying Qt 4 build environment ... ok
Checking for QCA >= 2.0 ... yes
Checking for OpenSSL ... yes
OpenSSL verstehe ich aber warum soll ich aus dem apt-repo qca installieren, wenn ich das doch kompilieren will? Das raffe ich nicht.

Nun gut also habe ich die benötigten Sachen installiert:
apt-get install libqca2 libqca2-dev libqca2-plugin-ossl
QCA lässt sich dann problemlos kompilieren.

Da mein Programm nun mit QCA umgehen kann, stelle ich mir nun die Frage wie ich das auf andere Systeme portieren kann.

Um qt4 Programme kompilieren zu können wird auf unix-systemen lediglich das dev(el) paket von libqt4 benötigt, die abhänigkeiten des jeweiligen Paketsystems machen den Rest. Das ist noch für jeden (auch Anfänger) nachvollziehbar und nicht weiter dramatisch.

Nun muss man aber noch QCA installieren und da geht es los.
Die qca-library, die ich durch das kompilieren von qca erhalte liefere ich in meinem Projekt mit (libqca-ossl.so). Nun benötige ich aber noch die *.h-files und da wird es kritisch. bei mir sind die unter /usr/include/QtCrypto, aber wie ist das bei anderen Distributionen?

Mein Programm lässt sich NUR mit der folgenden .pro-file kompilieren, ansonsten bekomme ich ein "no such file or directory"

Code: Alles auswählen

TEMPLATE = app
TARGET = ./bin/qcryption
QT += core \
HEADERS += 
SOURCES += src/main.cpp
FORMS += 
RESOURCES += 
LIBS += ./libs/libqca-ossl.so
UI_DIR += ./build/
MOC_DIR += ./build/moc/
OBJECTS_DIR += ./build/obj/
RCC_DIR += ./build/
CONFIG += qt \
    debug \
    warn_on
INCLUDEPATH += /usr/include/QtCrypto
Das Auge sollte auf die Parameter INCLUDEPATH gerichtet sein.

Kann ich denn einfach den Ordner /usr/include/QtCrypto in mein Projekt-Space kopieren, und den mitliefern? Weil ich möchte den Benutzern meines Programms ersparen QCA zu installieren, das man libqt4-dev(el) installieren muss ist das höchste aller Gefühle. Wenn man dann aber noch zusätzliche Programme selber kompilieren muss das ist das nicht schön. Weiß jemand was man da machen kann? Ich würde auch alternatic eine eigene Installationsrutine bauen, so das alles automatisch gemacht wird (egal welche Distribution), aber wie?

Verfasst: 27. März 2008 12:20
von Christian81
Also entweder baut man rpms (oder debs oder was auch immer) und gibt denen die dependencies mit (passiert meist automatisch) oder man verteilt die Sourcen und der User muss es slebst kompilieren. Dabei muss der natürlich auch alle Dependencies auf seinem Rechner installiert haben (also auch qca2).

Verfasst: 27. März 2008 12:25
von jd
Nicht sehr erfreulich. Aber was ist qca2? Wofür ist das gut? QCA kann ich ohne qca2 nicht kompilieren. Verstehe den unterschied nicht ganz zwischen den beiden Paketen. Oder ist QCA einfach nur eine Erweiterung für qca2?

Verfasst: 27. März 2008 12:33
von Christian81
qca2 ist die aktuelle qca - Version -> http://delta.affinix.com/qca/

Verfasst: 27. März 2008 13:45
von jd
Ach so, da qca2 bei mir im deb-repo ist, bräuchte ich das ja gar nicht per Hand kompilieren oder sehe ich das falsch?

//EDIT
Ich check das einfach nicht ich brauche qca2 um qca zu kompilieren? Wie soll das gehen? Wenn es doch das selbe Packet ist... Wäre genau so, wenn ich qt4 installiert haben muss um es zu kompilieren...

Verfasst: 27. März 2008 16:11
von jd
So habe das Problem jetzt gelöst...

QCA ist in 2 Große Teile gegliedert:

Die User-Api (QCA2)
Die Provider-Api (SSL, GnuPGP, etc.)

Die Provider-Api ist Abhänig von der User-Api.

Nachlesen kann man das ganze hier: http://delta.affinix.com/docs/qca/

// EDIT
Um alles in einem Programm mit zu liefern, und das mit den Abhänigkeiten auf eine geschickte Art zu lösen kann ich das SVN-Reposotory von PSI (Qt-Based Jabber-Client) empfehlen, da das dort der fall ist. Es eigentlich eine reine *.pro Sache :)

Stichwort: subdirs (http://doc.trolltech.com/4.3/qmake-vari ... ml#subdirs)

http://dev.psi-im.org/websvn/listing.ph ... h=%2F&sc=0
Das PSI repo ist in der Hinsicht eine kleine Goldgrube :)