gpt4 book ai didi

c++ - 在 MATLAB MEX 函数中链接 Cassandra/C++ 驱动程序库

转载 作者:行者123 更新时间:2023-11-30 05:24:10 32 4
gpt4 key购买 nike

基本思路如下:没有用于 MATLAB 的 Cassandra 驱动程序,但有 C++ 驱动程序。在VS12中创建一个项目,我可以查询数据库没有问题。

我在 MATLAB 中创建了一个 MEX 文件来调用网关 C++ 函数从数据库中获取数据。使用 MATLAB MEX:1-编译 mex 文件和网关功能工作正常,没有问题。2-包含文件和Cassandra.lib文件的路径是正确的。

仍然在联动阶段,找不到cassandra类:

mex ('-v',ipath_cassandra_code,ipath_cassandra, cSourceFile,'accessCassandra.cpp','-lcassandra','-lcassandra_static')

getFromCassandra.cpp:Cassandra 的网关函数accessCassandra.cpp: MATLAB mex 文件在网关 getFromCassandra.cpp 文件中调用 getFromCassandraRes()

我得到的错误:

       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> > &)"

我正在为我的 64 位 Windows 使用 C++ Cassandra 驱动程序二进制文件。MATLAB 版本:8.5.0.197613 (R2015a)Cassandra/C++ 驱动程序:来自 http://datastax.github.io/cpp-driver/ 的最新版本

感谢您的帮助。

最佳答案

解决了!

我尝试在 Windows 上重建 Cassandra/C++ 驱动程序。需要安装很多工具,最后都失败了。

但是当我注意到这一点时,问题就解决了:

在我的 Visual Studio 项目中,我正在为 win32 构建,因此正在使用

\cassandra-cpp-driver-2.4.2-win32-msvc120\lib'

但是 MATLAB 是为 64 位构建的!因此,当我更改路径以使用 64 位版本的 cassandra.lib 时:

\cassandra-cpp-driver-2.4.2-win64-msvc120\lib'

成功了!

我希望这可以节省其他人我花在追逐这个上的时间!

关于c++ - 在 MATLAB MEX 函数中链接 Cassandra/C++ 驱动程序库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38777338/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com