Die Grundidee ist wie folgt: Es gibt keinen Cassandra-Treiber für MATLAB, aber es gibt C++ - Treiber. Beim Erstellen eines Projekts in VS12 kann ich die Datenbank problemlos abfragen.Verknüpfung von Cassandra/C++ - Treiberbibliothek in MATLAB MEX-Funktion
Ich erstellte eine MEX-Datei in MATLAB, um die Gateway-C++ - Funktion aufzurufen, um Daten aus der Datenbank abzurufen. Verwenden von MATLAB MEX: 1-Compiling die mex-Datei und die Gateway-Funktion funktioniert problemlos. 2 - Der Pfad zum Einschließen von Dateien und Cassandra.lib-Dateien ist korrekt.
mex ('-v',ipath_cassandra_code,ipath_cassandra, cSourceFile,'accessCassandra.cpp','-lcassandra','-lcassandra_static')
getFromCassandra.cpp: Gateway-Funktion zu Cassandra accessCassandra.cpp: MATLAB mex Aufruf der Datei getFromCassandraRes() in Gateway getFromCassandra
Noch an der Verknüpfungsstufe können die cassandra Klassen nicht gefunden werden. CPP-Datei
Der Fehler erhalte ich:
Creating library getFromCassandra.lib and object getFromCassandra.exp
getFromCassandra.obj : error LNK2019: unresolved external symbol cass_cluster_new referenced in function "class
std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getFromCassandraRes(char *,char *,int,int,class
std::vector<struct muStatsStruct,class std::allocator<struct muStatsStruct> > &)"
ich bin mit dem C++ Cassandra Binärtreiber für meine 64-Bit Fenster. MATLAB Version: 8.5.0.197613 (R2015a) Cassandra/C++ Treiber: Neueste von http://datastax.github.io/cpp-driver/
Ihre Hilfe ist willkommen.