『壹』 Matlab 2017b編譯生成exe或DLL文件後無法運行的問題及其解決方法
問題原因
出現此問題是由於Windows 的system32目錄下兩個DLL文件版本太低,這兩個文件是SSLEAY32.DLL和LIBEAY32.DLL。
這兩個文件在MATLAB安裝目錄的\bin\win64目錄下也有,\bin\win64這個目錄是在添加到了系統的PATH變數里了的。但是Matlab編譯後的exe程序在運行時,system32目錄有高的優先順序,會使用system32目錄下的這兩個文件,導致初始化錯誤,直接閃退。
解決方法
知道了此原因,有兩種解決方法:
(1)將Matlab的安裝目錄 \bin\win64下的SSLEAY32.DLL和LIBEAY32.DLL復制到windows的system32目錄下,覆蓋舊版本的文件。但是這樣可能導致使用這兩個DLL文件的其他程序出現問題。
(2)將Matlab的安裝目錄 \bin\win64下的SSLEAY32.DLL和LIBEAY32.DLL文件復制到自己編譯後的exe同目錄下,這樣exe文件在運行時就是找自己目錄下的這兩個DLL文件,而不會使用windows\system32目錄下的DLL文件。
---------------------
原文:https://blog.csdn.net/hongandyi/article/details/79427078