遇到另一个与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"
这里可能有些奇怪,但我不确定如何检查或如何解决它(绝对与相对路径?)。