- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在 mexfunctions 中使用 boost。
下面是我的代码
main.cpp
#include <mex.h>
#include <boost/thread.hpp>
#include <boost/date_time.hpp>
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
mexPrintf("test boost");
}
我使用下面的命令编译它
mex main.cpp -LC:\Boost\1.55.0\VC\10.0\x64\stage\lib -IC:\Boost\1.55.0\VC\10.0\x64
然后我得到这个链接错误
LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-1_55.lib'
C:\PROGRA~1\MATLAB\R2012A\BIN\MEX.PL: Error: Link of 'main.mexw64' failed.
然后我再次编译使用,
mex main.cpp -LC:\Boost\1.55.0\VC\10.0\x64\stage\lib -IC:\Boost\1.55.0\VC\10.0\x64 -llibboost_thread-vc100-mt-s-1_55
但我仍然得到同样的错误。我该如何解决这个问题?
编辑:
我可以在普通的 visual studio c++ 项目中使用 boost,没有任何问题。只有当我把它放在 mexfunction 中时才会出现问题
最佳答案
我知道这个问题现在已经很老了,但我在 mex 上遇到过类似的问题,我可以通过不仅指定库目录搜索路径,还指定编译库对象的名称来解决它。
为此,我使用了以下命令:
mex main.cpp -I<path/to/lib> -L<path/to/lib/objects> -l<object_name>
命令行选项-l
用于告诉mex 链接指定的对象库。然后,Mex 将尝试查找添加到 -l
的任何内容,并将为 Windows 附加 .lib 并为 unix 附加 .LIBEXT。
这里有一个真实路径的例子:
mex main.cpp -IC:\boost_1_54_0 -LC:\boost_1_54_0\release -lthread
最后,对于您的情况,我建议您尝试:
mex main.cpp -IC:\Boost\1.55.0\VC\10.0\x64 -LC:\Boost\1.55.0\VC\10.0\x64\stage\lib -lthread
编辑:
我注意到定义 BOOST_ALL_NO_LIB
也有帮助,因为当我删除这个定义时我又得到了错误。要定义符号名称,您可以使用命令行选项 -D
所以只需添加 -DBOOST_ALL_NO_LIB
关于c++ - 使用 boost 编译 mexfunction 时出现链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20727840/
我正在读取一个二进制数据文件,该文件是通过调用 Matlab m 文件中的以下行编写的: disp(sprintf('template = %d', fwrite(fid, template_1d,
我正在尝试使用 mex(MacOSX Lion 上的 MATLAB 2012b)编译 C 文件。我的项目包含三个文件: 定义主要功能的头文件,smdvquad.h smdvquad.h 的 C 实现,
我是 mex 类型编程的新手,基本上我正在编写我的第一个 mexfunction,但我遇到了一个愚蠢的问题。我附上我的部分代码: void mexFunction(int nlhs, mxArray
最近,我尝试使用结构变量编写 mexfunctions。我观看了教程,但由于变量值的传递方式而感到困惑。以下示例 (mexfunction_using_ex_wrong.m & mexfunction
我正在尝试为简单的 C 函数创建 MEX 文件,如下所示: #include #include void mexFunction(int nlhs, mxArray *plhs[], int nr
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我正在尝试在 mexfunctions 中使用 boost。 下面是我的代码 main.cpp #include #include #include void mexFunction(int
我想在C mexFunction中实现Matern相关函数,这需要计算第二类修正贝塞尔克函数。 在 MATLAB 中,可以使用函数 besselk。然而,任何 C 库中都没有这样的等效项(我是对的吗?
我想要 const 全局变量,但它们应该在 mexFunction() 函数中定义。这是因为它们应该设置为一些来自 Matlab 的输入值。 (mexFunction() 基本上是我的 main()
// computing the matrix operation here // resultEigen = Input matrix // result1Eigen = hidde
我有 2 个 mexfucntions(1 个 C++ 和 1 个 CUDA),它们执行相同的计算,并且我正在对它们进行比较。 现在我正在研究 CUDA mexfucntion,我需要在 .txt 上
我正在使用 Matlab 的 mex 函数来运行一些 C++ 源文件。我有几个执行不同转换的 .cpp 文件。我想制作一个头文件来调用这些 .cpp 文件。我在网上看到的所有示例(到目前为止)仅将 m
我想问一下,我们如何调试从使用 VS 2010 和 Nsight 的 mexfunction 调用的 cuda 内核。我按照 http://http.developer.nvidia.com/Nsig
我正在使用 Visual Studio 2012 x64 直接构建和调试 MATLAB 2014a x64 mex 文件(不使用 MATLAB 中的 mex 命令)。我按照 this question
我是一名优秀的程序员,十分优秀!