基本思想如下: 沒有用於MATLAB的Cassandra驅動程序,但有C++ Driver。在VS12中創建項目,我可以查詢數據庫沒有問題。在MATLAB MEX函數中鏈接Cassandra/C++驅動程序庫
我在MATLAB中創建了一個MEX文件來調用網關C++函數從數據庫中獲取數據。使用MATLAB MEX: 1 - 編譯mex文件和網關功能正常工作,沒有問題。 2 - 包含文件和Cassandra.lib文件的路徑是正確的。
不過,在聯動階段,卡珊德拉類不能找到:
mex ('-v',ipath_cassandra_code,ipath_cassandra, cSourceFile,'accessCassandra.cpp','-lcassandra','-lcassandra_static')
getFromCassandra.cpp:網關功能卡桑德拉 accessCassandra.cpp:MATLAB MEX文件調用getFromCassandraRes()在網關getFromCassandra。 CPP文件
的錯誤,我得到:
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> > &)"
我使用的是C++卡桑德拉驅動程序二進制文件爲我的64位窗口。 MATLAB版本:8.5.0.197613(R2015a) 卡桑德拉/ C++驅動程序:從http://datastax.github.io/cpp-driver/
你的幫助,最新的是讚賞。