m檔案轉c c 後的打包問題

2021-03-31 08:56:31 字數 1441 閱讀 9188

發信人: fork (撒哈拉沙漠的沙), 信區: matlab

標  題: m檔案轉c/c++後的打包問題

發信站: bbs 哈工大紫丁香站 (sun aug  1 15:29:03 2004)

m檔案轉c/c++後的打包問題

mcc後的程式是否可以完全脫離matlab執行呢,一般情況下可以遵循乙個原則,先用「mcc

-b sglcpp 檔名」 來試驗,matlab會生成乙個可執行檔案,然後(就在同一臺計算機

上)執行這個這個可執行檔案,如果能執行成功,則可以保證它能在完全脫離malab的環境中執行。關於完全脫離matlab執行有幾點需要注意:

1.  將「matlab6p5/extern/lib/win32」目錄下「mglinstaller.exe」檔案考出,在目標

機器上執行,解壓時注意要保持解壓後的路徑與第一台計算機上matlab的安裝路徑一

致。當然你也可以直接把它解壓到跟你要執行的那個程式的同一目錄,或者是系統目

錄,但我不建議這麼做,為什麼?因為你有可能需要手工拷貝一些工具箱中的檔案,

而這些檔案在目標機器上的位置必須跟第一台機器的位置相同。這一點我可以解釋一

下,用「mcc -b sglcpp 檔名」編譯下面的程式:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function fork3(f_image)

i = imread(f_image);

imshow(i)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

在編譯後的主檔案「fork3_mainhg.cpp」中可以找到如下內容:

...................

static const char * path_list_[1] = ;

...................

這說明該路徑在程式中是以字串的形式「硬編碼」的,並不能在程式執行過程中動態

的自動的搜尋目標機器上matlab工具箱的路徑,因此兩台機器上的路徑要保持一致。

2. 另外從這個字串可以看出,該程式的執行可能會需要用到影象處理工具箱中的一些東

西(,dll等)但「mglinstaller.exe」並不打包工具箱中的東西,因此應該按此路

徑手工拷貝工具箱中的相關檔案。如果不能確定那些是「相關檔案」,那就全拷吧。

如果程式中用到了另外一些工具箱,那麼都要進行手工拷貝。

3. 上面兩步完成之後,還有一件事情要做,將這個路徑c:/matlab6p5/bin/win32(根據你

的具體情況有所不同)加入到系統 環境變數path中去。(什麼是環境變數path,在dos

視窗中鍵入「path」,那就是環境變數)加入的方法是(win2k)-->我的電腦--->右鍵-

-->屬性--->高階--->環境變數......剩下的就是找到path做修改了。

shader打包後丟失的問題

引用外部匯入的shader,並且是從 裡面來進行載入,編輯器中並沒有引用。在編輯器中執行專案沒有問題,但是當我發布到iso和android平台之後發現遊戲中並不能找到我自己的shader,猜想是unity在打包過程中進行了一些優化,沒有用到的shader不會被打到遊戲包內。我找到了2個解決辦法 1....

nginx處理vue打包檔案後的跨域問題

在vue檔案打包後,專案脫離了vue配置的反向 配置,還是會報跨域的錯誤,或者直接打不開本地檔案,但是此刻我們想開啟打包後的檔案,測試一下檔案有沒有錯誤,因為經常會存在開發階段沒有問題,打包後專案就各種問題,此時我們可以利用nginx處理跨域,其實vue配置也是利用的這個 在vue專案檔案中也是利用...

PHP執行C C 編譯後的檔案

我在linux系統下編譯.cpp檔案,編譯好後,用php system函式來執行編譯後的c。結果 的發現居然不行。但是用system來執行linux命令卻可以的。經過隊長的提醒和自己搞了半天,終於發現原來是資料夾許可權問題。記住編譯後的檔案不能直接chmod 777.給它所有許可權都不行 一定要 c...