2016-09-04 13 views
0

C++のニューラルネットワークライブラリ "OpenNN"を使用したいと考えています。 http://www.opennn.net/Visual StudioでopenNNを使用する(未解決の外部シンボル)

私は比較的新しいC++プロジェクト管理に慣れています。私はこの問題が原因で発生したと考えています。

私はopenNNリポジトリをクローンしました。

私が作成しようとしているすべてのOpenNNプロジェクトを格納するために作成したフォルダに、リポジトリから関連するフォルダをコピーしました。

私はVisual StudioでこのフォルダにC++コンソールアプリケーションを作成しました。これはテストに使用しています。

ので、ディレクトリ構造は次のとおりです。(私はすべてのopenNNプロジェクトを維持する予定)

OpenNN
--- eigen
--- opennn
--- tinyxml2
--- OpenNNTest(私のテストプロジェクトフォルダ)

私は、OpenNNの一部であるVectorクラスとMatrixクラスでいくつかのテストを行いました。私が変更された場合、興味深いことに

Error LNK2019 unresolved external symbol "public: __thiscall OpenNN::NeuralNetwork::NeuralNetwork(class OpenNN::Vector<unsigned int> const &)" ([email protected]@@[email protected][email protected]@[email protected]@Z) referenced in function "void __cdecl NNTest(void)" ([email protected]@YAXXZ) OpenNNTest D:\Projects\OpenNN\OpenNNTest\OpenNNTest\OpenNNTest.obj 1 

Error LNK2019 unresolved external symbol "public: virtual __thiscall 
OpenNN::NeuralNetwork::~NeuralNetwork(void)" ([email protected]@@[email protected]) referenced in function "void __cdecl NNTest(void)" ([email protected]@YAXXZ) OpenNNTest D:\Projects\OpenNN\OpenNNTest\OpenNNTest\OpenNNTest.obj 1 

は、以下のコードでは、しかし、次の2つの外部シンボルエラーを返す

OpenNN::NeuralNetwork nn(architecture); 

OpenNN::NeuralNetwork nn(); 

ない問題のために、かのようにデフォルトのコンストラクタを見つけますが、オーバーロードされたコンストラクタは見つかりませんか?次のように

私が使用していたコードは次のとおりです。

#include "stdafx.h" 

#include "../../opennn/opennn.h" 
using namespace OpenNN; 

using std::cout; 
using std::endl; 

void NNTest() 
{ 
    OpenNN::Vector<unsigned> architecture(5); 
    architecture[0] = 2; 
    architecture[1] = 2; 
    architecture[2] = 4; 
    architecture[3] = 3; 
    architecture[4] = 1; 

    OpenNN::NeuralNetwork nn(architecture); 

    //Vector<double> inputs(2); 
    //inputs[0] = 0.5; 
    //inputs[1] = 0.1; 

    //Vector<double> outputs = nn.calculate_outputs(inputs); 

    //cout << outputs << endl; 

    //nn.save("neural_network.xml"); 


} 

int main() 
{ 
    NNTest(); 

    getchar(); 

    return 0; 
} 

答えて

0

あなたはsize_t型符号なしタイプに変更する必要があります:私はそれが役に立てば幸い

OpenNN::Vector<size_t> architecture(5); 
architecture[0] = 2; 
architecture[1] = 2; 
architecture[2] = 4; 
architecture[3] = 3; 
architecture[4] = 1; 

OpenNN::NeuralNetwork nn(architecture); 

を。

関連する問題