matlab ctf文件,matlab2012b與VS2012混編總結(3)——關於用mcc指令生成的文件集中沒有ctf文件...

注意:最終的最終發現,matlab2012b雖然可以生成鏈接庫等,vs2012也能調用,但是執行不了,找了好久也沒有找到好的解決辦法,最后改用matlab2013a,它可以直接識別vs2012的編譯器,不需要添加別的文件什么的,其他的和以下所寫的一樣。或者用matlab2010b和vs2010也可以完美匹配哦!!!

在上一篇博文中,我嘗試了很多方法和解決方案,最終成功的在matlab2012b下通過mcc指令編譯產生dll和lib動靜態鏈接庫以及其他文件,如果借助於dll,lib和h文件即可成功實現matlab2012b與VS2012之間的混編(其實也是可以的,之后我會介紹),沒有某些強迫症的話就沒必要看這篇博文了。

我之前在有一篇文章里看到說matlab與VC++混編需要四個文件,.lib,.dll,.h,和 .ctf后綴的文件,於是啊,我開始糾結我在混編時在VS中生成代碼時出現的各種問題是不是因為缺少了ctf文件(事實證明不是因為缺少此文件,如果大家嘗試過各種方法之后仍然提示錯誤,可以嘗試添加個ctf文件,有時候這也是說不准的,大概因為我還是菜鳥吧,不懂修改其他文件,只好什么都試一下),我上篇博文中的兩個指令:mcc -t -W cpplib:MyAdd -T link:lib MyAdd.m和mcc -W cpplib:MyAdd -T link:lib MyAdd.m生成的文件中並沒有ctf后綴的文件。

在看了相關文件之后說在指令后面添加-C選項即可產生ctf后綴文件,原因是:在matlab2007之后的版本中已經把ctf文件壓縮到EXE格式的文件中,所以在生成的文件中不會單獨分離出ctf文件,(其實在生成的時候認真觀察還是有ctf文件出現的,但是出現了之后大概1秒的時間吧,就消失了);要想生成ctf文件就需要在上面的兩條指令的最后面添上-C:

mcc -t -W cpplib:MyAdd -T link:lib MyAdd.m -C

和mcc -W cpplib:MyAdd -T link:lib MyAdd.m -C

用於將ctf文件分離出來。但是很不幸,我在運行這兩條指令時出現了以下錯誤:

Depfun error: 'Unable to locate –C as a function on the MATLAB path'

Error using mcc

Error executing mcc, return status = 1 (0x1).

2014年5月21日更新:昨天由於matlab出問題,重裝了一下,發現上面的兩條指令完全可以運行,一點問題也沒有了!

在網上搜索了一番,有以下幾種解決辦法:

http://www.cnblogs.com/yingying0907/archive/2012/11/11/2710826.html中說:當前編譯路徑沒有修改,錯誤已經提示了,將當前matlab路徑改到你這個m文件所在的路徑下,(點擊運行按鈕會出現 change directory,選擇即可)再進行編譯!可是matlab的當前路徑就是在改m文件所在的路徑下。

還有說什么設置好編譯器,可是這些我都已經弄好了,也試了其他網頁上的各種方法仍然沒能解決這個問題,於是乎放棄了。

失敗!!!

所以我想着換一種編譯方法,在需找上面解決辦法的同時,我看到有一篇文章寫的是利用MATLAB compiler編譯產生鏈接庫的過程中可以通過設置產生ctf文件。

下面我介紹用MATLAB compiler編譯鏈接庫的過程:

在MATLAB的主界面菜單欄中選擇MATLAB compiler,如下圖所示:

77657b8f4df2df0aa0590878a477d17b.gif

選擇完之后出現以下對話框:

6d918548afc395ce0954bb1478271f85.gif

點擊OK,則新的編譯項目創建成功,如下圖所示:

7b909e9a9a0140764f38219fa68b956d.gif

點擊設置按鈕,其他的選項相信大家都能看明白,唯獨要設置ctf的輸出問題,這是輸出ctf文件的關鍵步驟,如下圖所示:

4c4fae3487d887e79b0bf1eaee8fa1c7.gif

在設置完之后關閉窗口,然后在編譯界面中添加要編譯的m文件,點擊Add files,選擇你需要編譯成鏈接庫的m文件,然后點擊編譯按鈕,完成之后你就可以在你上面那個對話框中的output里的看到五個文件:.lib,.dll,.h,.ctf后綴的文件,以及一個readme.txt文件。至此,工作就完成了!!!!

成功!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值