Plugin soll Bibliothek benutzen
Hallo, ich möchte ein Plugin schreiben, welches einige mathematische Bibliotheken nutzen soll. Mir ist allerdings nicht klar, wie ich diese Bibliotheken cmake übergebe. Als Beispiel nehmen wir das SimplePugin aus der Dokumentation und die Funktionen aus den Bibliotheken möchten wir in der Methode SmootherPlugin::simpleLaplace() verwenden. In einem anderen Beispielprojekt habe ich diese Bibliotheken eingebunden, allerdings ohne cmake zu benutzen. Hier das Beispiel : test_svd.cc: ----------------- #include <flens/flens.h> using namespace flens; typedef GeMatrix<FullStorage<double, ColMajor> > GEMatrix; typedef DenseVector<Array<double> > DEVector; int main() { int m = 5; int n = 3; GEMatrix A(m, n), U(m,m), VT(n,n); DEVector s(min(m,n)); for (int i=1; i<=m; ++i) { for (int j=1; j<=n; ++j) { A(i,j) = i + j; } } svd(A, s, U, VT); return 0; } Die Datei test_svd.cc liegt im Verzeichnis /home/masel/workspace/FLENS-2009-06-12/examples. Erzeugt wird das ganze durch: g++ -Wall -Wextra -g -O3 -fPIC -I /home/masel/workspace/FLENS-2009-06-12 -I. -o test_svd test_svd.cc -L.. -lflens -llapack -latlas -lblas Folglich muss cmake also irgendwie klargemacht werden, wie die Bibliotheken flens, lapack, atlas und blas benutzt werden könne. Ich weiß, dass man so etwas Prinzipiell mit Find<Bibliothekname>.cmake Dateien und einträgen in der CMakeLists.txt erledigen sollte. Falls mir jemand einen Tip geben kann, würde mir das sehr helfen, da ich schon seit einigen Woche versuche, das Problem zu lösen. Gruß, Marcel Makowsi (IGPM)
Hi, libraries werden in cmake über "Finder" eingefügt. Beispiele hierfür sind im cmake Verzeichnis und heißen z.b. FindPCRE.cmake . Darin werden libraries und includes gesucht und in variablen hinterlegt. Im Plugin Verzeichnis dann einfach in der CMakeLists.txt im Macro openflipper_plugin den Finder eintragen: openflipper_plugin ( DEPS SUPERLU SUITESPARSE GMM PCRE ) Den Rest macht cmake. Grüße, Jan Möbius Am 25.01.2011 18:25, schrieb Marcel Makowski:
Hallo, ich möchte ein Plugin schreiben, welches einige mathematische Bibliotheken nutzen soll. Mir ist allerdings nicht klar, wie ich diese Bibliotheken cmake übergebe.
Als Beispiel nehmen wir das SimplePugin aus der Dokumentation und die Funktionen aus den Bibliotheken möchten wir in der Methode SmootherPlugin::simpleLaplace() verwenden.
In einem anderen Beispielprojekt habe ich diese Bibliotheken eingebunden, allerdings ohne cmake zu benutzen. Hier das Beispiel :
test_svd.cc: -----------------
#include<flens/flens.h>
using namespace flens;
typedef GeMatrix<FullStorage<double, ColMajor> > GEMatrix; typedef DenseVector<Array<double> > DEVector;
int main() { int m = 5; int n = 3; GEMatrix A(m, n), U(m,m), VT(n,n); DEVector s(min(m,n));
for (int i=1; i<=m; ++i) { for (int j=1; j<=n; ++j) { A(i,j) = i + j; } }
svd(A, s, U, VT);
return 0; }
Die Datei test_svd.cc liegt im Verzeichnis /home/masel/workspace/FLENS-2009-06-12/examples. Erzeugt wird das ganze durch: g++ -Wall -Wextra -g -O3 -fPIC -I /home/masel/workspace/FLENS-2009-06-12 -I. -o test_svd test_svd.cc -L.. -lflens -llapack -latlas -lblas
Folglich muss cmake also irgendwie klargemacht werden, wie die Bibliotheken flens, lapack, atlas und blas benutzt werden könne. Ich weiß, dass man so etwas Prinzipiell mit Find<Bibliothekname>.cmake Dateien und einträgen in der CMakeLists.txt erledigen sollte.
Falls mir jemand einen Tip geben kann, würde mir das sehr helfen, da ich schon seit einigen Woche versuche, das Problem zu lösen.
Gruß, Marcel Makowsi (IGPM)
_______________________________________________ Openflipper mailing list Openflipper@lists.rwth-aachen.de http://mailman.rwth-aachen.de/mailman/listinfo/openflipper
participants (2)
-
Jan Möbius
-
Marcel Makowski