错误LNK2019:未解析的外部符号" public:__ thishisall:构造函数问题

时间:2015-02-22 01:03:14

标签: c++ constructor lnk2019

我想测试以下行,但是我得到了一个LNK2019错误,在我的构造函数中指出了一个错误。如果构造函数实现从源文件移动到头文件,它就可以工作......

dVector是std :: vector

的typedef

错误LNK2019:未解析的外部符号" public:__ thiscall Grid :: Grid(int,class std :: vector>&,class std :: vector>&,class std ::向量>&)"

//main.cpp
#include <Math/PDE/Grid.h>
#include <vector>
int main(){

dVector oLowerBounds(2);
dVector oUpperBounds(2);
int lNumberOfStates(2);
dVector oMArkovianStates(2);
std::vector<int> oGridSizes(2);
Grid * pGrid=  new Grid(lNumberOfStates, oLowerBounds, oUpperBounds, oGridSizes);
return 0;
}

// Grid.h

#ifndef GRID_H
#define GRID_H
#pragma once

#include <Math/Matrix/Matrix.h>
#include<vector>

class Grid
{
public:

Grid(int inGridDimension,
     dVector &inLowerBounds,
     dVector &inUpperBounds,
     std::vector<int> &inGridSizes);

double getGridElement(int index1, int index2){return mGrid[index1][index2];};
void buildUniformGrid();
bool getIsUniformGrid(int index){return mIsUniformGrid[index];};
int getGridSize(int index);
~Grid(void);
private:
int mGridDimension;
std::vector<bool>   mIsUniformGrid;
std::vector<double> mLowerBounds;
std::vector<double> mUpperBounds;
std::vector<int> mGridSizes;
std::vector<std::vector<double>> mGrid;
};

#endif

// Grid.cpp

#include <Math/PDE/Grid.h>



Grid::Grid(int inGridDimension,
std::vector<double> &inLowerBounds,
std::vector<double> &inUpperBounds,
std::vector<int> &inGridSizes):
mGridDimension(inGridDimension),
mLowerBounds(inLowerBounds),
mUpperBounds(inUpperBounds),
mGridSizes(inGridSizes)
{

}


Grid::~Grid(void)
{
}

1 个答案:

答案 0 :(得分:2)

问题似乎是有两个项目,一个找不到另一个项目的编译类。

我将尝试解释将一个项目用作库,一个用作Visual Studio中的应用程序的过程。

首先在库项目中执行rightclick-&gt;属性,然后在选项卡General下,Configuration Type应该是Static library(.lib)。

然后在应用程序项目中再次转到属性,选择Linker-&gt;输入,在文本框Additional Libraries中,使用箭头选择Edit。然后在第一个项目的创建库的完整或相对路径的底部(您可以首先构建它以验证位置)。