“error LNK2019: 无法解析的外部符号 _mclInitializeApplication_” --matlab R2012a(64bit) + VS2012混编 (Win7 64bit)

在论坛帖子中找到原因,该错误主要是因为使用了64位的库,而平台还是Win32导致,更改为X64解决。

一下是大致混编的大致步骤:

matlab预备:mbuild -setup

   mex -setup
根据选择安装。

1,编写m文件add.m(以加法为例写m文件),在matlab下执行: “mcc -C -W cpplib:libadd -T link:lib add.m”

2,将生成的libadd.ctf、libadd.dll、libadd.h、libadd.lib拷贝到VS工程目录下。

3,添加包含目录:C:\Program Files\MATLAB\R2012a\extern\include

4,添加库目录:C:\Program Files\MATLAB\R2012a\extern\lib\win64\microsoft  (64位库,因此注意编译时使用X64平台)

5,添加附加依赖项:
mclmcrrt.lib
libmx.lib
libmat.lib
libmex.lib
libeng.lib
mclmcr.lib
libadd.lib(更据mcc的文件结果而定)

6,加入头文件:#include "libadd.h"

------------------------------------------------------------------------------------------

此外:在其他帖子中看到的
可能还需要的头文件:
#include "mclmcrrt.h"
#include "mclcppclass.h"

可能需要添加的环境变量:C:\Program Files\MATLAB\R2012a\bin\win64




  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
错误信息 "error LNK2019: 无法解析外部符号 __imp_clock" 表明在程序中使用了函数 __imp_clock,但编译器和链接器无法找到该函数的定义或实现。这种错误通常是由于缺失符号的定义、编译器搜索路径错误或编译器/链接器选项错误引起的。 解决这个错误的方法有以下几种: 1. 确保包含了正确的头文件:检查代码中是否包含了正确的头文件,特别是包含了声明 __imp_clock 的头文件。如果没有包含正确的头文件,编译器将无法找到函数的定义。 2. 检查编译器的搜索路径:编译器需要知道在哪里查找函数的定义。确保编译器的搜索路径设置正确,以便能够找到函数的定义。可以通过设置编译器的选项或环境变量来修改搜索路径。 3. 检查编译器/链接器选项:检查编译器和链接器的选项设置,确保没有设置错误的选项。有时候,错误的选项设置可能导致编译器无法找到函数的定义。 下面是一个示例代码,演示了如何使用函数 __imp_clock: ```c++ #include <iostream> #include <ctime> int main() { std::clock_t start = std::clock(); // 执行一些操作 std::clock_t end = std::clock(); double duration = (end - start) / (double) CLOCKS_PER_SEC; std::cout << "程序执行时间:" << duration << " 秒" << std::endl; return 0; } ``` 这段代码使用了函数 std::clock() 来计算程序的执行时间。确保在代码中包含了正确的头文件,并且编译器能够找到函数的定义。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值