我希望使用C++神经网络库"OpenNN“。http://www.opennn.net/
我是C++项目管理的新手,我相信我的问题就是由这个引起的。
我已经克隆了openNN存储库。
我将存储库中的相关文件夹复制到我创建的文件夹中,该文件夹包含我计划创建的所有OpenNN项目。
然后,我在visual studio中创建了一个c++控制台应用程序,该应用程序位于我要用于测试的这个文件夹中。
所以dir结构是:
OpenNN (我计划在这里保存所有openNN项目)
-eigen
-opennn
-tinyxml2
-OpenNNTest(我的测试项目文件夹)
我用矢量和矩阵类做了一些测试,它们都是OpenNN的一部分,都运行得很好。
但是,下面的代码返回以下两个外部符号错误:
Error LNK2019 unresolved external symbol "public: __thiscall OpenNN::NeuralNetwork::NeuralNetwork(class OpenNN::Vector<unsigned int> const &)" (??0NeuralNetwork@OpenNN@@QAE@ABV?$Vector@I@1@@Z) referenced in function "void __cdecl NNTest(void)" (?NNTest@@YAXXZ) OpenNNTest D:\Projects\OpenNN\OpenNNTest\OpenNNTest\OpenNNTest.obj 1
Error LNK2019 unresolved external symbol "public: virtual __thiscall
OpenNN::NeuralNetwork::~NeuralNetwork(void)" (??1NeuralNetwork@OpenNN@@UAE@XZ) referenced in function "void __cdecl NNTest(void)" (?NNTest@@YAXXZ) OpenNNTest D:\Projects\OpenNN\OpenNNTest\OpenNNTest\OpenNNTest.obj 1 有趣的是,如果我改变了:
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;
}发布于 2016-11-04 02:33:47
您需要将类型unsigned更改为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);我希望这能有所帮助。
https://stackoverflow.com/questions/39319775
复制相似问题