如何添加相对于当前文件的头文件路径?

时间:2017-01-02 16:54:02

标签: c++ matlab visual-studio-2013 eigen mex

我在以下目录中有mx_minimum_power.cpp文件

D:\thesis library.Data\ALOS-PALSAR 12x2\San Francisco L 12x2  

和14个头文件,我想包含在以下目录中的cpp文件中:

D:\thesis library.Data\ALOS-PALSAR 12x2\San Francisco L 12x2\Eigen\Eigenvalues  

所以这些.h文件相对于我的.cpp文件的相对路径是\Eigen\Eigenvalues
我应该如何包含所有这些头文件的相对路径 到目前为止我已经完成了:

#include <math.h>
#include <complex>
#include <iostream>
#include "mex.h"
#include "matrix.h"
#include "\Eigen\Eigenvalues"

using std::complex;
using std::cout;
using std::endl;
using namespace Eigen;

/* The gateway function */
void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
{
    double *arraysizePtr = NULL;
    arraysizePtr = mxGetPr(prhs[9]);
    const int arraysize = (int)*arraysizePtr;
    const int matrixDimention = 3;
}

但是当我在matlab中运行以下命令以构建.mexw64文件时:

mex -g mx_minimum_power.cpp  

我收到错误:

Building with 'Microsoft Visual C++ 2013 Professional'.  
Error using mex
mx_minimum_power.cpp
D:\thesis library.Data\ALOS-PALSAR 12x2\San Francisco L 12x2\mx_minimum_power.cpp(6) : fatal
error C1083: Cannot open include file: '\Eigen\Eigenvalues': No such file or directory

1 个答案:

答案 0 :(得分:1)

bool exception = false;

            try
            {

                using (WebClient client = new WebClient())
                {
                    client.Credentials = new NetworkCredential(FtpUser.Text, FtpPass.Text);
                    client.UploadFile("ftp://example.com/file.txt", "STOR", MyFilePath);

                }

            }
            catch (Exception ex)
            {
                exception = true;
                MessageBox.Show(ex.Message);
            }


            if(!exception){
                MessageBox.Show("Upload worked!");
            }

然后让编译器知道查看“。”假设您从源目录运行编译器,作为包的基本路径。在gcc / g ++中,使用“-I。”。我找不到MSDN上的等价物,但有一个。我几年前用过它。

字面上回答了你的问题,但是我会告诉编译器查看“Eigen \ Eigenvalues”,然后只使用上面的14个名字,而没有两个级别的目录。