首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >除专用文件夹外,任何其他文件夹中的MEX文件无效

除专用文件夹外,任何其他文件夹中的MEX文件无效
EN

Stack Overflow用户
提问于 2018-03-31 06:24:46
回答 1查看 280关注 0票数 0

我已经在Windows中用caffe编译了matcaffe。

我当前的matcaffe文件夹结构如下:

代码语言:javascript
复制
.
C:\PYTHON\caffe
            |-- matlab
                  |
                  |-- +caffe
                         |
                         |--private
                                |
                                |-- caffe_.mexw64
                                |...
                                |-- all hard linked dlls

我使用dependency检查了caffe_.mexw64,发现缺少以下文件:

代码语言:javascript
复制
LIBMEX.DLL
LIBMX.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
DCOMP.DLL
IESHIMS.DLL

从依赖者身上可以很明显的看出。发现了所有的caffe-related dll

在matlab中,我添加了以下路径:

代码语言:javascript
复制
addpath('C:\PYTHON\caffe\matlab');

但在运行此命令时:

代码语言:javascript
复制
caffe.run_tests()

我得到以下错误:

代码语言:javascript
复制
Invalid MEX-file 'C:\PYTHON\caffe\matlab\+caffe\private\caffe_.mexw64': The
specified procedure could not be found.
Error in caffe.set_mode_cpu (line 5)
caffe_('set_mode_cpu');
Error in caffe.run_tests (line 6)
caffe.set_mode_cpu(); 

有趣的事情如下。如果我转到caffe\matlab\+caffe\private文件夹并运行相同的caffe.run_tests(),那么它将成功运行。

此后,我只能运行matcaffe命令,而不会出现来自任何其他文件夹的MEX错误(因为dll随后已经加载到内存中)。

我的问题是:

  • 这里发生了什么事情,我不能直接从任何其他文件夹运行?
  • 如何解决这个问题才能得到正常的行为?

更新:

现在我看到同样的问题已经在这里上发布了,但是没有适当的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2018-04-01 23:21:02

您需要将带有DLL的目录添加到PATH环境变量中。您可以在上这样做(这不能在Linux和Unix上修改等效的LD_LIBRARY_PATH ):

代码语言:javascript
复制
setenv('PATH',['C:\PYTHON\caffe\matlab\+caffe\private\;',getenv('PATH')]);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49584900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档