【发布时间】:2021-11-13 16:42:16
【问题描述】:
我正在尝试在 VS2017 IDE 中运行 Matlab R2021a 的 CPP Mex 存储库中的示例代码之一。具体来说,我正在运行 phonebook.cpp 之一。我之前在 VS2017 中使用 this guide 之后的 C Mex API 编译其他解决方案时运行没有问题。但是,我在编译 phonebook.cpp 时收到以下消息:
Severity Code Description Project File Line Suppression State
Error LNK2019 unresolved external symbol __imp_get_function_ptr referenced in function "int (__cdecl*__cdecl matlab::data::detail::resolveFunction<int (__cdecl*)(int,int,bool *)>(enum matlab::data::detail::FunctionType))(int,int,bool *)" (??$resolveFunction@P6AHHHPEA_N@Z@detail@data@matlab@@YAP6AHHHPEA_N@ZW4FunctionType@012@@Z) test C:\Users\DuuMushishi\Documents\test.obj 1
我不确定需要添加什么库或者错误是否是由其他原因引起的
【问题讨论】:
-
您确实应该使用
mex命令来编译 MEX 文件。您链接的指南遗漏了很多东西,包括定义一些预处理器宏来指定您要使用的 API 版本。默认 API 版本不是最佳选择。如果您想“手动”构建 MEX 文件,请使用-v开关运行mex,以便您可以看到它如何调用编译器和链接器。这应该可以很好地说明还需要什么。
标签: c++ matlab visual-studio-2017 mex unresolved-external