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;
}