mex -I标志未在单独的目录中查找包含文件

时间:2018-02-08 15:12:30

标签: c++ matlab compiler-errors mex

遇到另一个与MATLAB mex文件相关的问题。

目前尝试在给定目录的路径的情况下,从给定目录中的.cpp文件自动生成mex文件。

目前我的命令看起来很柔和......

% These are getting passed in, but I verified the contents %
input = 'C:\Users\ian\libXYZ\src\something\util\sequence\sequence.cpp'
mexDir = 'C:\Users\ian\libXYZ\mex'
includeDir = 'C:\Users\ian\libXYZ\include\something\util\sequence\'

eval(['mex ' input ' -outdir ' mexDir ' -I' includeDir])

which looks like...
'mex C:/Users/ian/libXYZ/src/something/util/sequence/Sequence.cpp -outdir C:/Users/ian/libXYZ/mex -IC:/Users/ian/libXYZ/include/something/util/sequence/'

由于某些奇怪的原因,我在第一个文件中遇到包含错误的错误。

Building with 'Microsoft Visual C++ 2015 Professional'.
Error using mex
Sequence.cpp
C:\Users\ian\libXYZ\src\something\util\sequence\Sequence.cpp(4): fatal error C1083: Cannot open include file:
'something/util/sequence/Sequence.hpp': No such file or directory

它在查找包含文件时出错。我仔细检查过' /' vs' \'我没有这样做(我在路径上使用strrep(x,' \',' /')并再次尝试检查)并确保文件在那里,路径是正确的,并且.cpp文件具有正确的包含。经过一些广泛的测试和玩弄后,所有这些都不是问题。

问题是,为什么eval(mex)调用中的-Ipathname标志不允许编译器获取正确的include目录?

如果有人对于为什么会发生这种情况有任何想法,我会很感激。

编辑: 这是包含Sequence.cpp中的Sequence.hpp的行

// Include project headers
#include "something/util/sequence/Sequence.hpp"

这里可能有些奇怪,但我不确定如何检查或如何解决它(绝对与相对路径?)。

0 个答案:

没有答案